@dotdo/postgres 0.1.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.
Files changed (1129) hide show
  1. package/README.md +868 -0
  2. package/dist/cdc/change-stream.d.ts +44 -0
  3. package/dist/cdc/change-stream.d.ts.map +1 -0
  4. package/dist/cdc/change-stream.js +95 -0
  5. package/dist/cdc/change-stream.js.map +1 -0
  6. package/dist/cdc/filter.d.ts +58 -0
  7. package/dist/cdc/filter.d.ts.map +1 -0
  8. package/dist/cdc/filter.js +520 -0
  9. package/dist/cdc/filter.js.map +1 -0
  10. package/dist/cdc/index.d.ts +47 -0
  11. package/dist/cdc/index.d.ts.map +1 -0
  12. package/dist/cdc/index.js +50 -0
  13. package/dist/cdc/index.js.map +1 -0
  14. package/dist/cdc/resume-token.d.ts +60 -0
  15. package/dist/cdc/resume-token.d.ts.map +1 -0
  16. package/dist/cdc/resume-token.js +228 -0
  17. package/dist/cdc/resume-token.js.map +1 -0
  18. package/dist/cdc/transport/index.d.ts +7 -0
  19. package/dist/cdc/transport/index.d.ts.map +1 -0
  20. package/dist/cdc/transport/index.js +7 -0
  21. package/dist/cdc/transport/index.js.map +1 -0
  22. package/dist/cdc/transport/sse.d.ts +120 -0
  23. package/dist/cdc/transport/sse.d.ts.map +1 -0
  24. package/dist/cdc/transport/sse.js +590 -0
  25. package/dist/cdc/transport/sse.js.map +1 -0
  26. package/dist/cdc/transport/websocket.d.ts +130 -0
  27. package/dist/cdc/transport/websocket.d.ts.map +1 -0
  28. package/dist/cdc/transport/websocket.js +688 -0
  29. package/dist/cdc/transport/websocket.js.map +1 -0
  30. package/dist/cdc/types.d.ts +306 -0
  31. package/dist/cdc/types.d.ts.map +1 -0
  32. package/dist/cdc/types.js +8 -0
  33. package/dist/cdc/types.js.map +1 -0
  34. package/dist/config/index.d.ts +25 -0
  35. package/dist/config/index.d.ts.map +1 -0
  36. package/dist/config/index.js +25 -0
  37. package/dist/config/index.js.map +1 -0
  38. package/dist/config/memory.d.ts +139 -0
  39. package/dist/config/memory.d.ts.map +1 -0
  40. package/dist/config/memory.js +157 -0
  41. package/dist/config/memory.js.map +1 -0
  42. package/dist/config/storage.d.ts +157 -0
  43. package/dist/config/storage.d.ts.map +1 -0
  44. package/dist/config/storage.js +178 -0
  45. package/dist/config/storage.js.map +1 -0
  46. package/dist/config/streaming.d.ts +117 -0
  47. package/dist/config/streaming.d.ts.map +1 -0
  48. package/dist/config/streaming.js +132 -0
  49. package/dist/config/streaming.js.map +1 -0
  50. package/dist/config/timeouts.d.ts +168 -0
  51. package/dist/config/timeouts.d.ts.map +1 -0
  52. package/dist/config/timeouts.js +192 -0
  53. package/dist/config/timeouts.js.map +1 -0
  54. package/dist/extensions/config.d.ts +89 -0
  55. package/dist/extensions/config.d.ts.map +1 -0
  56. package/dist/extensions/config.js +216 -0
  57. package/dist/extensions/config.js.map +1 -0
  58. package/dist/extensions/geo.d.ts +452 -0
  59. package/dist/extensions/geo.d.ts.map +1 -0
  60. package/dist/extensions/geo.js +583 -0
  61. package/dist/extensions/geo.js.map +1 -0
  62. package/dist/extensions/index.d.ts +167 -0
  63. package/dist/extensions/index.d.ts.map +1 -0
  64. package/dist/extensions/index.js +99 -0
  65. package/dist/extensions/index.js.map +1 -0
  66. package/dist/extensions/loader.d.ts +226 -0
  67. package/dist/extensions/loader.d.ts.map +1 -0
  68. package/dist/extensions/loader.js +456 -0
  69. package/dist/extensions/loader.js.map +1 -0
  70. package/dist/extensions/pgmq-lite.d.ts +330 -0
  71. package/dist/extensions/pgmq-lite.d.ts.map +1 -0
  72. package/dist/extensions/pgmq-lite.js +648 -0
  73. package/dist/extensions/pgmq-lite.js.map +1 -0
  74. package/dist/extensions/plugins.d.ts +260 -0
  75. package/dist/extensions/plugins.d.ts.map +1 -0
  76. package/dist/extensions/plugins.js +535 -0
  77. package/dist/extensions/plugins.js.map +1 -0
  78. package/dist/extensions/registry.d.ts +93 -0
  79. package/dist/extensions/registry.d.ts.map +1 -0
  80. package/dist/extensions/registry.js +182 -0
  81. package/dist/extensions/registry.js.map +1 -0
  82. package/dist/extensions/vector.d.ts +106 -0
  83. package/dist/extensions/vector.d.ts.map +1 -0
  84. package/dist/extensions/vector.js +129 -0
  85. package/dist/extensions/vector.js.map +1 -0
  86. package/dist/iceberg/analytics.d.ts +279 -0
  87. package/dist/iceberg/analytics.d.ts.map +1 -0
  88. package/dist/iceberg/analytics.js +448 -0
  89. package/dist/iceberg/analytics.js.map +1 -0
  90. package/dist/iceberg/catalog-api.d.ts +39 -0
  91. package/dist/iceberg/catalog-api.d.ts.map +1 -0
  92. package/dist/iceberg/catalog-api.js +388 -0
  93. package/dist/iceberg/catalog-api.js.map +1 -0
  94. package/dist/iceberg/catalog.d.ts +401 -0
  95. package/dist/iceberg/catalog.d.ts.map +1 -0
  96. package/dist/iceberg/catalog.js +677 -0
  97. package/dist/iceberg/catalog.js.map +1 -0
  98. package/dist/iceberg/duckdb-wasm.d.ts +447 -0
  99. package/dist/iceberg/duckdb-wasm.d.ts.map +1 -0
  100. package/dist/iceberg/duckdb-wasm.js +600 -0
  101. package/dist/iceberg/duckdb-wasm.js.map +1 -0
  102. package/dist/iceberg/index.d.ts +92 -0
  103. package/dist/iceberg/index.d.ts.map +1 -0
  104. package/dist/iceberg/index.js +119 -0
  105. package/dist/iceberg/index.js.map +1 -0
  106. package/dist/iceberg/metadata.d.ts +214 -0
  107. package/dist/iceberg/metadata.d.ts.map +1 -0
  108. package/dist/iceberg/metadata.js +535 -0
  109. package/dist/iceberg/metadata.js.map +1 -0
  110. package/dist/iceberg/optimizer.d.ts +296 -0
  111. package/dist/iceberg/optimizer.d.ts.map +1 -0
  112. package/dist/iceberg/optimizer.js +889 -0
  113. package/dist/iceberg/optimizer.js.map +1 -0
  114. package/dist/iceberg/parquet.d.ts +447 -0
  115. package/dist/iceberg/parquet.d.ts.map +1 -0
  116. package/dist/iceberg/parquet.js +1225 -0
  117. package/dist/iceberg/parquet.js.map +1 -0
  118. package/dist/iceberg/r2-organization.d.ts +422 -0
  119. package/dist/iceberg/r2-organization.d.ts.map +1 -0
  120. package/dist/iceberg/r2-organization.js +672 -0
  121. package/dist/iceberg/r2-organization.js.map +1 -0
  122. package/dist/iceberg/scheduler-do-example.d.ts +158 -0
  123. package/dist/iceberg/scheduler-do-example.d.ts.map +1 -0
  124. package/dist/iceberg/scheduler-do-example.js +261 -0
  125. package/dist/iceberg/scheduler-do-example.js.map +1 -0
  126. package/dist/iceberg/scheduler.d.ts +434 -0
  127. package/dist/iceberg/scheduler.d.ts.map +1 -0
  128. package/dist/iceberg/scheduler.js +818 -0
  129. package/dist/iceberg/scheduler.js.map +1 -0
  130. package/dist/iceberg/schema.d.ts +149 -0
  131. package/dist/iceberg/schema.d.ts.map +1 -0
  132. package/dist/iceberg/schema.js +525 -0
  133. package/dist/iceberg/schema.js.map +1 -0
  134. package/dist/iceberg/snapshot-manager.d.ts +406 -0
  135. package/dist/iceberg/snapshot-manager.d.ts.map +1 -0
  136. package/dist/iceberg/snapshot-manager.js +934 -0
  137. package/dist/iceberg/snapshot-manager.js.map +1 -0
  138. package/dist/iceberg/sql-router.d.ts +194 -0
  139. package/dist/iceberg/sql-router.d.ts.map +1 -0
  140. package/dist/iceberg/sql-router.js +180 -0
  141. package/dist/iceberg/sql-router.js.map +1 -0
  142. package/dist/iceberg/test-fixtures.d.ts +151 -0
  143. package/dist/iceberg/test-fixtures.d.ts.map +1 -0
  144. package/dist/iceberg/test-fixtures.js +446 -0
  145. package/dist/iceberg/test-fixtures.js.map +1 -0
  146. package/dist/iceberg/time-travel-api.d.ts +102 -0
  147. package/dist/iceberg/time-travel-api.d.ts.map +1 -0
  148. package/dist/iceberg/time-travel-api.js +437 -0
  149. package/dist/iceberg/time-travel-api.js.map +1 -0
  150. package/dist/iceberg/time-travel.d.ts +293 -0
  151. package/dist/iceberg/time-travel.d.ts.map +1 -0
  152. package/dist/iceberg/time-travel.js +689 -0
  153. package/dist/iceberg/time-travel.js.map +1 -0
  154. package/dist/iceberg/transformer.d.ts +356 -0
  155. package/dist/iceberg/transformer.d.ts.map +1 -0
  156. package/dist/iceberg/transformer.js +770 -0
  157. package/dist/iceberg/transformer.js.map +1 -0
  158. package/dist/iceberg/types.d.ts +318 -0
  159. package/dist/iceberg/types.d.ts.map +1 -0
  160. package/dist/iceberg/types.js +9 -0
  161. package/dist/iceberg/types.js.map +1 -0
  162. package/dist/iceberg/writer.d.ts +144 -0
  163. package/dist/iceberg/writer.d.ts.map +1 -0
  164. package/dist/iceberg/writer.js +452 -0
  165. package/dist/iceberg/writer.js.map +1 -0
  166. package/dist/index.d.ts +50 -0
  167. package/dist/index.d.ts.map +1 -0
  168. package/dist/index.js +69 -0
  169. package/dist/index.js.map +1 -0
  170. package/dist/lineage/index.d.ts +11 -0
  171. package/dist/lineage/index.d.ts.map +1 -0
  172. package/dist/lineage/index.js +11 -0
  173. package/dist/lineage/index.js.map +1 -0
  174. package/dist/lineage/integration.d.ts +134 -0
  175. package/dist/lineage/integration.d.ts.map +1 -0
  176. package/dist/lineage/integration.js +258 -0
  177. package/dist/lineage/integration.js.map +1 -0
  178. package/dist/lineage/tracker.d.ts +189 -0
  179. package/dist/lineage/tracker.d.ts.map +1 -0
  180. package/dist/lineage/tracker.js +1352 -0
  181. package/dist/lineage/tracker.js.map +1 -0
  182. package/dist/lineage/types.d.ts +318 -0
  183. package/dist/lineage/types.d.ts.map +1 -0
  184. package/dist/lineage/types.js +9 -0
  185. package/dist/lineage/types.js.map +1 -0
  186. package/dist/middleware/index.d.ts +11 -0
  187. package/dist/middleware/index.d.ts.map +1 -0
  188. package/dist/middleware/index.js +16 -0
  189. package/dist/middleware/index.js.map +1 -0
  190. package/dist/middleware/rate-limit.d.ts +397 -0
  191. package/dist/middleware/rate-limit.d.ts.map +1 -0
  192. package/dist/middleware/rate-limit.js +507 -0
  193. package/dist/middleware/rate-limit.js.map +1 -0
  194. package/dist/migration-tooling/external-migration.d.ts +601 -0
  195. package/dist/migration-tooling/external-migration.d.ts.map +1 -0
  196. package/dist/migration-tooling/external-migration.js +1612 -0
  197. package/dist/migration-tooling/external-migration.js.map +1 -0
  198. package/dist/migration-tooling/index.d.ts +19 -0
  199. package/dist/migration-tooling/index.d.ts.map +1 -0
  200. package/dist/migration-tooling/index.js +19 -0
  201. package/dist/migration-tooling/index.js.map +1 -0
  202. package/dist/migrations/auto-migrator.d.ts +289 -0
  203. package/dist/migrations/auto-migrator.d.ts.map +1 -0
  204. package/dist/migrations/auto-migrator.js +396 -0
  205. package/dist/migrations/auto-migrator.js.map +1 -0
  206. package/dist/migrations/bulk-orchestrator.d.ts +403 -0
  207. package/dist/migrations/bulk-orchestrator.d.ts.map +1 -0
  208. package/dist/migrations/bulk-orchestrator.js +646 -0
  209. package/dist/migrations/bulk-orchestrator.js.map +1 -0
  210. package/dist/migrations/compatibility.d.ts +216 -0
  211. package/dist/migrations/compatibility.d.ts.map +1 -0
  212. package/dist/migrations/compatibility.js +651 -0
  213. package/dist/migrations/compatibility.js.map +1 -0
  214. package/dist/migrations/do-migrations.d.ts +101 -0
  215. package/dist/migrations/do-migrations.d.ts.map +1 -0
  216. package/dist/migrations/do-migrations.js +1060 -0
  217. package/dist/migrations/do-migrations.js.map +1 -0
  218. package/dist/migrations/do-migrations.types.d.ts +550 -0
  219. package/dist/migrations/do-migrations.types.d.ts.map +1 -0
  220. package/dist/migrations/do-migrations.types.js +15 -0
  221. package/dist/migrations/do-migrations.types.js.map +1 -0
  222. package/dist/migrations/drizzle-compat.d.ts +163 -0
  223. package/dist/migrations/drizzle-compat.d.ts.map +1 -0
  224. package/dist/migrations/drizzle-compat.js +273 -0
  225. package/dist/migrations/drizzle-compat.js.map +1 -0
  226. package/dist/migrations/index.d.ts +109 -0
  227. package/dist/migrations/index.d.ts.map +1 -0
  228. package/dist/migrations/index.js +127 -0
  229. package/dist/migrations/index.js.map +1 -0
  230. package/dist/migrations/migration-api.d.ts +161 -0
  231. package/dist/migrations/migration-api.d.ts.map +1 -0
  232. package/dist/migrations/migration-api.js +499 -0
  233. package/dist/migrations/migration-api.js.map +1 -0
  234. package/dist/migrations/progress-tracker-do.d.ts +195 -0
  235. package/dist/migrations/progress-tracker-do.d.ts.map +1 -0
  236. package/dist/migrations/progress-tracker-do.js +339 -0
  237. package/dist/migrations/progress-tracker-do.js.map +1 -0
  238. package/dist/migrations/progress-tracker-kv.d.ts +103 -0
  239. package/dist/migrations/progress-tracker-kv.d.ts.map +1 -0
  240. package/dist/migrations/progress-tracker-kv.js +231 -0
  241. package/dist/migrations/progress-tracker-kv.js.map +1 -0
  242. package/dist/migrations/progress-tracker.d.ts +320 -0
  243. package/dist/migrations/progress-tracker.d.ts.map +1 -0
  244. package/dist/migrations/progress-tracker.js +443 -0
  245. package/dist/migrations/progress-tracker.js.map +1 -0
  246. package/dist/migrations/registry.d.ts +231 -0
  247. package/dist/migrations/registry.d.ts.map +1 -0
  248. package/dist/migrations/registry.js +376 -0
  249. package/dist/migrations/registry.js.map +1 -0
  250. package/dist/migrations/runner.d.ts +197 -0
  251. package/dist/migrations/runner.d.ts.map +1 -0
  252. package/dist/migrations/runner.js +1167 -0
  253. package/dist/migrations/runner.js.map +1 -0
  254. package/dist/migrations/schema-generator.d.ts +111 -0
  255. package/dist/migrations/schema-generator.d.ts.map +1 -0
  256. package/dist/migrations/schema-generator.js +335 -0
  257. package/dist/migrations/schema-generator.js.map +1 -0
  258. package/dist/migrations/testing.d.ts +321 -0
  259. package/dist/migrations/testing.d.ts.map +1 -0
  260. package/dist/migrations/testing.js +645 -0
  261. package/dist/migrations/testing.js.map +1 -0
  262. package/dist/migrations/types.d.ts +503 -0
  263. package/dist/migrations/types.d.ts.map +1 -0
  264. package/dist/migrations/types.js +11 -0
  265. package/dist/migrations/types.js.map +1 -0
  266. package/dist/migrations/validator.d.ts +215 -0
  267. package/dist/migrations/validator.d.ts.map +1 -0
  268. package/dist/migrations/validator.js +494 -0
  269. package/dist/migrations/validator.js.map +1 -0
  270. package/dist/observability/alerting.d.ts +116 -0
  271. package/dist/observability/alerting.d.ts.map +1 -0
  272. package/dist/observability/alerting.js +353 -0
  273. package/dist/observability/alerting.js.map +1 -0
  274. package/dist/observability/analytics-engine.d.ts +357 -0
  275. package/dist/observability/analytics-engine.d.ts.map +1 -0
  276. package/dist/observability/analytics-engine.js +430 -0
  277. package/dist/observability/analytics-engine.js.map +1 -0
  278. package/dist/observability/cost-metrics.d.ts +269 -0
  279. package/dist/observability/cost-metrics.d.ts.map +1 -0
  280. package/dist/observability/cost-metrics.js +560 -0
  281. package/dist/observability/cost-metrics.js.map +1 -0
  282. package/dist/observability/cross-do-tracing.d.ts +305 -0
  283. package/dist/observability/cross-do-tracing.d.ts.map +1 -0
  284. package/dist/observability/cross-do-tracing.js +431 -0
  285. package/dist/observability/cross-do-tracing.js.map +1 -0
  286. package/dist/observability/error-rate-collector.d.ts +163 -0
  287. package/dist/observability/error-rate-collector.d.ts.map +1 -0
  288. package/dist/observability/error-rate-collector.js +306 -0
  289. package/dist/observability/error-rate-collector.js.map +1 -0
  290. package/dist/observability/exporters.d.ts +231 -0
  291. package/dist/observability/exporters.d.ts.map +1 -0
  292. package/dist/observability/exporters.js +479 -0
  293. package/dist/observability/exporters.js.map +1 -0
  294. package/dist/observability/health-check.d.ts +106 -0
  295. package/dist/observability/health-check.d.ts.map +1 -0
  296. package/dist/observability/health-check.js +243 -0
  297. package/dist/observability/health-check.js.map +1 -0
  298. package/dist/observability/index.d.ts +297 -0
  299. package/dist/observability/index.d.ts.map +1 -0
  300. package/dist/observability/index.js +455 -0
  301. package/dist/observability/index.js.map +1 -0
  302. package/dist/observability/instrumentation.d.ts +222 -0
  303. package/dist/observability/instrumentation.d.ts.map +1 -0
  304. package/dist/observability/instrumentation.js +532 -0
  305. package/dist/observability/instrumentation.js.map +1 -0
  306. package/dist/observability/memory-metrics.d.ts +227 -0
  307. package/dist/observability/memory-metrics.d.ts.map +1 -0
  308. package/dist/observability/memory-metrics.js +688 -0
  309. package/dist/observability/memory-metrics.js.map +1 -0
  310. package/dist/observability/metrics-endpoint.d.ts +91 -0
  311. package/dist/observability/metrics-endpoint.d.ts.map +1 -0
  312. package/dist/observability/metrics-endpoint.js +246 -0
  313. package/dist/observability/metrics-endpoint.js.map +1 -0
  314. package/dist/observability/metrics.d.ts +88 -0
  315. package/dist/observability/metrics.d.ts.map +1 -0
  316. package/dist/observability/metrics.js +253 -0
  317. package/dist/observability/metrics.js.map +1 -0
  318. package/dist/observability/observability-features.d.ts +488 -0
  319. package/dist/observability/observability-features.d.ts.map +1 -0
  320. package/dist/observability/observability-features.js +773 -0
  321. package/dist/observability/observability-features.js.map +1 -0
  322. package/dist/observability/prometheus.d.ts +39 -0
  323. package/dist/observability/prometheus.d.ts.map +1 -0
  324. package/dist/observability/prometheus.js +120 -0
  325. package/dist/observability/prometheus.js.map +1 -0
  326. package/dist/observability/propagation.d.ts +126 -0
  327. package/dist/observability/propagation.d.ts.map +1 -0
  328. package/dist/observability/propagation.js +234 -0
  329. package/dist/observability/propagation.js.map +1 -0
  330. package/dist/observability/query-latency.d.ts +243 -0
  331. package/dist/observability/query-latency.d.ts.map +1 -0
  332. package/dist/observability/query-latency.js +292 -0
  333. package/dist/observability/query-latency.js.map +1 -0
  334. package/dist/observability/query-performance.d.ts +169 -0
  335. package/dist/observability/query-performance.d.ts.map +1 -0
  336. package/dist/observability/query-performance.js +290 -0
  337. package/dist/observability/query-performance.js.map +1 -0
  338. package/dist/observability/storage-tier-metrics.d.ts +174 -0
  339. package/dist/observability/storage-tier-metrics.d.ts.map +1 -0
  340. package/dist/observability/storage-tier-metrics.js +306 -0
  341. package/dist/observability/storage-tier-metrics.js.map +1 -0
  342. package/dist/observability/tier-cost-optimizer.d.ts +155 -0
  343. package/dist/observability/tier-cost-optimizer.d.ts.map +1 -0
  344. package/dist/observability/tier-cost-optimizer.js +536 -0
  345. package/dist/observability/tier-cost-optimizer.js.map +1 -0
  346. package/dist/observability/tracer.d.ts +149 -0
  347. package/dist/observability/tracer.d.ts.map +1 -0
  348. package/dist/observability/tracer.js +435 -0
  349. package/dist/observability/tracer.js.map +1 -0
  350. package/dist/observability/types.d.ts +402 -0
  351. package/dist/observability/types.d.ts.map +1 -0
  352. package/dist/observability/types.js +103 -0
  353. package/dist/observability/types.js.map +1 -0
  354. package/dist/pglite/workers-pglite.d.ts +138 -0
  355. package/dist/pglite/workers-pglite.d.ts.map +1 -0
  356. package/dist/pglite/workers-pglite.js +143 -0
  357. package/dist/pglite/workers-pglite.js.map +1 -0
  358. package/dist/pglite-assets/pglite.data +0 -0
  359. package/dist/pglite-assets/pglite.wasm +0 -0
  360. package/dist/playground/index.d.ts +52 -0
  361. package/dist/playground/index.d.ts.map +1 -0
  362. package/dist/playground/index.js +55 -0
  363. package/dist/playground/index.js.map +1 -0
  364. package/dist/playground/keyboard-shortcuts.d.ts +116 -0
  365. package/dist/playground/keyboard-shortcuts.d.ts.map +1 -0
  366. package/dist/playground/keyboard-shortcuts.js +588 -0
  367. package/dist/playground/keyboard-shortcuts.js.map +1 -0
  368. package/dist/playground/playground.d.ts +82 -0
  369. package/dist/playground/playground.d.ts.map +1 -0
  370. package/dist/playground/playground.js +271 -0
  371. package/dist/playground/playground.js.map +1 -0
  372. package/dist/playground/query-executor.d.ts +115 -0
  373. package/dist/playground/query-executor.d.ts.map +1 -0
  374. package/dist/playground/query-executor.js +558 -0
  375. package/dist/playground/query-executor.js.map +1 -0
  376. package/dist/playground/query-history.d.ts +92 -0
  377. package/dist/playground/query-history.d.ts.map +1 -0
  378. package/dist/playground/query-history.js +259 -0
  379. package/dist/playground/query-history.js.map +1 -0
  380. package/dist/playground/result-formatter.d.ts +59 -0
  381. package/dist/playground/result-formatter.d.ts.map +1 -0
  382. package/dist/playground/result-formatter.js +341 -0
  383. package/dist/playground/result-formatter.js.map +1 -0
  384. package/dist/playground/sample-datasets.d.ts +77 -0
  385. package/dist/playground/sample-datasets.d.ts.map +1 -0
  386. package/dist/playground/sample-datasets.js +641 -0
  387. package/dist/playground/sample-datasets.js.map +1 -0
  388. package/dist/playground/sample-queries.d.ts +73 -0
  389. package/dist/playground/sample-queries.d.ts.map +1 -0
  390. package/dist/playground/sample-queries.js +1095 -0
  391. package/dist/playground/sample-queries.js.map +1 -0
  392. package/dist/playground/schema-explorer.d.ts +55 -0
  393. package/dist/playground/schema-explorer.d.ts.map +1 -0
  394. package/dist/playground/schema-explorer.js +473 -0
  395. package/dist/playground/schema-explorer.js.map +1 -0
  396. package/dist/playground/types.d.ts +430 -0
  397. package/dist/playground/types.d.ts.map +1 -0
  398. package/dist/playground/types.js +10 -0
  399. package/dist/playground/types.js.map +1 -0
  400. package/dist/readonly/cache-reader.d.ts +145 -0
  401. package/dist/readonly/cache-reader.d.ts.map +1 -0
  402. package/dist/readonly/cache-reader.js +198 -0
  403. package/dist/readonly/cache-reader.js.map +1 -0
  404. package/dist/readonly/config.d.ts +74 -0
  405. package/dist/readonly/config.d.ts.map +1 -0
  406. package/dist/readonly/config.js +67 -0
  407. package/dist/readonly/config.js.map +1 -0
  408. package/dist/readonly/index.d.ts +22 -0
  409. package/dist/readonly/index.d.ts.map +1 -0
  410. package/dist/readonly/index.js +17 -0
  411. package/dist/readonly/index.js.map +1 -0
  412. package/dist/readonly/pglite-wrapper.d.ts +82 -0
  413. package/dist/readonly/pglite-wrapper.d.ts.map +1 -0
  414. package/dist/readonly/pglite-wrapper.js +123 -0
  415. package/dist/readonly/pglite-wrapper.js.map +1 -0
  416. package/dist/readonly/worker.d.ts +142 -0
  417. package/dist/readonly/worker.d.ts.map +1 -0
  418. package/dist/readonly/worker.js +187 -0
  419. package/dist/readonly/worker.js.map +1 -0
  420. package/dist/readonly/write-blocker.d.ts +47 -0
  421. package/dist/readonly/write-blocker.d.ts.map +1 -0
  422. package/dist/readonly/write-blocker.js +136 -0
  423. package/dist/readonly/write-blocker.js.map +1 -0
  424. package/dist/recovery/disaster-recovery.d.ts +326 -0
  425. package/dist/recovery/disaster-recovery.d.ts.map +1 -0
  426. package/dist/recovery/disaster-recovery.js +799 -0
  427. package/dist/recovery/disaster-recovery.js.map +1 -0
  428. package/dist/recovery/index.d.ts +12 -0
  429. package/dist/recovery/index.d.ts.map +1 -0
  430. package/dist/recovery/index.js +12 -0
  431. package/dist/recovery/index.js.map +1 -0
  432. package/dist/recovery/parquet-parser.d.ts +321 -0
  433. package/dist/recovery/parquet-parser.d.ts.map +1 -0
  434. package/dist/recovery/parquet-parser.js +797 -0
  435. package/dist/recovery/parquet-parser.js.map +1 -0
  436. package/dist/retention/index.d.ts +50 -0
  437. package/dist/retention/index.d.ts.map +1 -0
  438. package/dist/retention/index.js +50 -0
  439. package/dist/retention/index.js.map +1 -0
  440. package/dist/retention/policy.d.ts +344 -0
  441. package/dist/retention/policy.d.ts.map +1 -0
  442. package/dist/retention/policy.js +472 -0
  443. package/dist/retention/policy.js.map +1 -0
  444. package/dist/retention/purger.d.ts +187 -0
  445. package/dist/retention/purger.d.ts.map +1 -0
  446. package/dist/retention/purger.js +411 -0
  447. package/dist/retention/purger.js.map +1 -0
  448. package/dist/rls/auth-integration.d.ts +280 -0
  449. package/dist/rls/auth-integration.d.ts.map +1 -0
  450. package/dist/rls/auth-integration.js +399 -0
  451. package/dist/rls/auth-integration.js.map +1 -0
  452. package/dist/rls/generator.d.ts +249 -0
  453. package/dist/rls/generator.d.ts.map +1 -0
  454. package/dist/rls/generator.js +495 -0
  455. package/dist/rls/generator.js.map +1 -0
  456. package/dist/rls/index.d.ts +26 -0
  457. package/dist/rls/index.d.ts.map +1 -0
  458. package/dist/rls/index.js +58 -0
  459. package/dist/rls/index.js.map +1 -0
  460. package/dist/rls/policy.d.ts +116 -0
  461. package/dist/rls/policy.d.ts.map +1 -0
  462. package/dist/rls/policy.js +77 -0
  463. package/dist/rls/policy.js.map +1 -0
  464. package/dist/rls/validator.d.ts +155 -0
  465. package/dist/rls/validator.d.ts.map +1 -0
  466. package/dist/rls/validator.js +792 -0
  467. package/dist/rls/validator.js.map +1 -0
  468. package/dist/routing/adaptive-router.d.ts +317 -0
  469. package/dist/routing/adaptive-router.d.ts.map +1 -0
  470. package/dist/routing/adaptive-router.js +554 -0
  471. package/dist/routing/adaptive-router.js.map +1 -0
  472. package/dist/routing/circuit-breaker.d.ts +339 -0
  473. package/dist/routing/circuit-breaker.d.ts.map +1 -0
  474. package/dist/routing/circuit-breaker.js +620 -0
  475. package/dist/routing/circuit-breaker.js.map +1 -0
  476. package/dist/routing/cost-metrics.d.ts +133 -0
  477. package/dist/routing/cost-metrics.d.ts.map +1 -0
  478. package/dist/routing/cost-metrics.js +259 -0
  479. package/dist/routing/cost-metrics.js.map +1 -0
  480. package/dist/routing/do-connection-pool.d.ts +243 -0
  481. package/dist/routing/do-connection-pool.d.ts.map +1 -0
  482. package/dist/routing/do-connection-pool.js +572 -0
  483. package/dist/routing/do-connection-pool.js.map +1 -0
  484. package/dist/routing/index.d.ts +59 -0
  485. package/dist/routing/index.d.ts.map +1 -0
  486. package/dist/routing/index.js +59 -0
  487. package/dist/routing/index.js.map +1 -0
  488. package/dist/routing/query-complexity-estimator.d.ts +73 -0
  489. package/dist/routing/query-complexity-estimator.d.ts.map +1 -0
  490. package/dist/routing/query-complexity-estimator.js +327 -0
  491. package/dist/routing/query-complexity-estimator.js.map +1 -0
  492. package/dist/routing/request-coalescing.d.ts +178 -0
  493. package/dist/routing/request-coalescing.d.ts.map +1 -0
  494. package/dist/routing/request-coalescing.js +325 -0
  495. package/dist/routing/request-coalescing.js.map +1 -0
  496. package/dist/routing/runtime-router.d.ts +107 -0
  497. package/dist/routing/runtime-router.d.ts.map +1 -0
  498. package/dist/routing/runtime-router.js +246 -0
  499. package/dist/routing/runtime-router.js.map +1 -0
  500. package/dist/routing/tenant-router.d.ts +848 -0
  501. package/dist/routing/tenant-router.d.ts.map +1 -0
  502. package/dist/routing/tenant-router.js +1056 -0
  503. package/dist/routing/tenant-router.js.map +1 -0
  504. package/dist/routing/websocket-pool.d.ts +119 -0
  505. package/dist/routing/websocket-pool.d.ts.map +1 -0
  506. package/dist/routing/websocket-pool.js +436 -0
  507. package/dist/routing/websocket-pool.js.map +1 -0
  508. package/dist/storage/cache-layer.d.ts +159 -0
  509. package/dist/storage/cache-layer.d.ts.map +1 -0
  510. package/dist/storage/cache-layer.js +245 -0
  511. package/dist/storage/cache-layer.js.map +1 -0
  512. package/dist/storage/cost-aware-tiering.d.ts +258 -0
  513. package/dist/storage/cost-aware-tiering.d.ts.map +1 -0
  514. package/dist/storage/cost-aware-tiering.js +526 -0
  515. package/dist/storage/cost-aware-tiering.js.map +1 -0
  516. package/dist/storage/index.d.ts +87 -0
  517. package/dist/storage/index.d.ts.map +1 -0
  518. package/dist/storage/index.js +78 -0
  519. package/dist/storage/index.js.map +1 -0
  520. package/dist/storage/interfaces.d.ts +856 -0
  521. package/dist/storage/interfaces.d.ts.map +1 -0
  522. package/dist/storage/interfaces.js +69 -0
  523. package/dist/storage/interfaces.js.map +1 -0
  524. package/dist/storage/r2-layer.d.ts +226 -0
  525. package/dist/storage/r2-layer.d.ts.map +1 -0
  526. package/dist/storage/r2-layer.js +307 -0
  527. package/dist/storage/r2-layer.js.map +1 -0
  528. package/dist/storage/r2-overflow.d.ts +344 -0
  529. package/dist/storage/r2-overflow.d.ts.map +1 -0
  530. package/dist/storage/r2-overflow.js +730 -0
  531. package/dist/storage/r2-overflow.js.map +1 -0
  532. package/dist/storage/r2-page-vfs.d.ts +374 -0
  533. package/dist/storage/r2-page-vfs.d.ts.map +1 -0
  534. package/dist/storage/r2-page-vfs.js +754 -0
  535. package/dist/storage/r2-page-vfs.js.map +1 -0
  536. package/dist/storage/swr-cache.d.ts +181 -0
  537. package/dist/storage/swr-cache.d.ts.map +1 -0
  538. package/dist/storage/swr-cache.js +295 -0
  539. package/dist/storage/swr-cache.js.map +1 -0
  540. package/dist/storage/tiered-orchestrator.d.ts +951 -0
  541. package/dist/storage/tiered-orchestrator.d.ts.map +1 -0
  542. package/dist/storage/tiered-orchestrator.js +1731 -0
  543. package/dist/storage/tiered-orchestrator.js.map +1 -0
  544. package/dist/storage/tiered-vfs-swr.d.ts +279 -0
  545. package/dist/storage/tiered-vfs-swr.d.ts.map +1 -0
  546. package/dist/storage/tiered-vfs-swr.js +584 -0
  547. package/dist/storage/tiered-vfs-swr.js.map +1 -0
  548. package/dist/storage/tiered-vfs.d.ts +405 -0
  549. package/dist/storage/tiered-vfs.d.ts.map +1 -0
  550. package/dist/storage/tiered-vfs.js +833 -0
  551. package/dist/storage/tiered-vfs.js.map +1 -0
  552. package/dist/streaming/backpressure-controller.d.ts +173 -0
  553. package/dist/streaming/backpressure-controller.d.ts.map +1 -0
  554. package/dist/streaming/backpressure-controller.js +344 -0
  555. package/dist/streaming/backpressure-controller.js.map +1 -0
  556. package/dist/streaming/buffer-pool.d.ts +241 -0
  557. package/dist/streaming/buffer-pool.d.ts.map +1 -0
  558. package/dist/streaming/buffer-pool.js +381 -0
  559. package/dist/streaming/buffer-pool.js.map +1 -0
  560. package/dist/streaming/cdc-iceberg-connector.d.ts +272 -0
  561. package/dist/streaming/cdc-iceberg-connector.d.ts.map +1 -0
  562. package/dist/streaming/cdc-iceberg-connector.js +408 -0
  563. package/dist/streaming/cdc-iceberg-connector.js.map +1 -0
  564. package/dist/streaming/index.d.ts +111 -0
  565. package/dist/streaming/index.d.ts.map +1 -0
  566. package/dist/streaming/index.js +128 -0
  567. package/dist/streaming/index.js.map +1 -0
  568. package/dist/streaming/live-cdc-stream.d.ts +400 -0
  569. package/dist/streaming/live-cdc-stream.d.ts.map +1 -0
  570. package/dist/streaming/live-cdc-stream.js +703 -0
  571. package/dist/streaming/live-cdc-stream.js.map +1 -0
  572. package/dist/streaming/memory-bounded-stream.d.ts +207 -0
  573. package/dist/streaming/memory-bounded-stream.d.ts.map +1 -0
  574. package/dist/streaming/memory-bounded-stream.js +340 -0
  575. package/dist/streaming/memory-bounded-stream.js.map +1 -0
  576. package/dist/streaming/query-streamer.d.ts +379 -0
  577. package/dist/streaming/query-streamer.d.ts.map +1 -0
  578. package/dist/streaming/query-streamer.js +495 -0
  579. package/dist/streaming/query-streamer.js.map +1 -0
  580. package/dist/streaming/response-streaming.d.ts +203 -0
  581. package/dist/streaming/response-streaming.d.ts.map +1 -0
  582. package/dist/streaming/response-streaming.js +449 -0
  583. package/dist/streaming/response-streaming.js.map +1 -0
  584. package/dist/types/branded.d.ts +859 -0
  585. package/dist/types/branded.d.ts.map +1 -0
  586. package/dist/types/branded.js +891 -0
  587. package/dist/types/branded.js.map +1 -0
  588. package/dist/types/utilities.d.ts +757 -0
  589. package/dist/types/utilities.d.ts.map +1 -0
  590. package/dist/types/utilities.js +447 -0
  591. package/dist/types/utilities.js.map +1 -0
  592. package/dist/wal/replay-engine.d.ts +344 -0
  593. package/dist/wal/replay-engine.d.ts.map +1 -0
  594. package/dist/wal/replay-engine.js +975 -0
  595. package/dist/wal/replay-engine.js.map +1 -0
  596. package/dist/worker/__mocks__/capnweb.d.ts +13 -0
  597. package/dist/worker/__mocks__/capnweb.d.ts.map +1 -0
  598. package/dist/worker/__mocks__/capnweb.js +15 -0
  599. package/dist/worker/__mocks__/capnweb.js.map +1 -0
  600. package/dist/worker/__mocks__/cloudflare-workers.d.ts +31 -0
  601. package/dist/worker/__mocks__/cloudflare-workers.d.ts.map +1 -0
  602. package/dist/worker/__mocks__/cloudflare-workers.js +33 -0
  603. package/dist/worker/__mocks__/cloudflare-workers.js.map +1 -0
  604. package/dist/worker/__mocks__/pglite.data.d.ts +3 -0
  605. package/dist/worker/__mocks__/pglite.data.d.ts.map +1 -0
  606. package/dist/worker/__mocks__/pglite.data.js +20 -0
  607. package/dist/worker/__mocks__/pglite.data.js.map +1 -0
  608. package/dist/worker/__mocks__/pglite.wasm.d.ts +3 -0
  609. package/dist/worker/__mocks__/pglite.wasm.d.ts.map +1 -0
  610. package/dist/worker/__mocks__/pglite.wasm.js +30 -0
  611. package/dist/worker/__mocks__/pglite.wasm.js.map +1 -0
  612. package/dist/worker/auth-rate-limiter.d.ts +270 -0
  613. package/dist/worker/auth-rate-limiter.d.ts.map +1 -0
  614. package/dist/worker/auth-rate-limiter.js +332 -0
  615. package/dist/worker/auth-rate-limiter.js.map +1 -0
  616. package/dist/worker/auth.d.ts +345 -0
  617. package/dist/worker/auth.d.ts.map +1 -0
  618. package/dist/worker/auth.js +837 -0
  619. package/dist/worker/auth.js.map +1 -0
  620. package/dist/worker/cdc-backpressure.d.ts +338 -0
  621. package/dist/worker/cdc-backpressure.d.ts.map +1 -0
  622. package/dist/worker/cdc-backpressure.js +619 -0
  623. package/dist/worker/cdc-backpressure.js.map +1 -0
  624. package/dist/worker/cdc-sse.d.ts +277 -0
  625. package/dist/worker/cdc-sse.d.ts.map +1 -0
  626. package/dist/worker/cdc-sse.js +528 -0
  627. package/dist/worker/cdc-sse.js.map +1 -0
  628. package/dist/worker/cdc-websocket.d.ts +252 -0
  629. package/dist/worker/cdc-websocket.d.ts.map +1 -0
  630. package/dist/worker/cdc-websocket.js +940 -0
  631. package/dist/worker/cdc-websocket.js.map +1 -0
  632. package/dist/worker/cdc.d.ts +95 -0
  633. package/dist/worker/cdc.d.ts.map +1 -0
  634. package/dist/worker/cdc.js +211 -0
  635. package/dist/worker/cdc.js.map +1 -0
  636. package/dist/worker/concerns/auth-concern.d.ts +50 -0
  637. package/dist/worker/concerns/auth-concern.d.ts.map +1 -0
  638. package/dist/worker/concerns/auth-concern.js +131 -0
  639. package/dist/worker/concerns/auth-concern.js.map +1 -0
  640. package/dist/worker/concerns/cdc-concern.d.ts +99 -0
  641. package/dist/worker/concerns/cdc-concern.d.ts.map +1 -0
  642. package/dist/worker/concerns/cdc-concern.js +137 -0
  643. package/dist/worker/concerns/cdc-concern.js.map +1 -0
  644. package/dist/worker/concerns/index.d.ts +22 -0
  645. package/dist/worker/concerns/index.d.ts.map +1 -0
  646. package/dist/worker/concerns/index.js +13 -0
  647. package/dist/worker/concerns/index.js.map +1 -0
  648. package/dist/worker/concerns/query-execution-concern.d.ts +104 -0
  649. package/dist/worker/concerns/query-execution-concern.d.ts.map +1 -0
  650. package/dist/worker/concerns/query-execution-concern.js +95 -0
  651. package/dist/worker/concerns/query-execution-concern.js.map +1 -0
  652. package/dist/worker/concerns/storage-orchestration-concern.d.ts +78 -0
  653. package/dist/worker/concerns/storage-orchestration-concern.d.ts.map +1 -0
  654. package/dist/worker/concerns/storage-orchestration-concern.js +240 -0
  655. package/dist/worker/concerns/storage-orchestration-concern.js.map +1 -0
  656. package/dist/worker/do-auth-manager.d.ts +108 -0
  657. package/dist/worker/do-auth-manager.d.ts.map +1 -0
  658. package/dist/worker/do-auth-manager.js +212 -0
  659. package/dist/worker/do-auth-manager.js.map +1 -0
  660. package/dist/worker/do-pglite-manager.d.ts +137 -0
  661. package/dist/worker/do-pglite-manager.d.ts.map +1 -0
  662. package/dist/worker/do-pglite-manager.js +228 -0
  663. package/dist/worker/do-pglite-manager.js.map +1 -0
  664. package/dist/worker/do.d.ts +556 -0
  665. package/dist/worker/do.d.ts.map +1 -0
  666. package/dist/worker/do.js +1441 -0
  667. package/dist/worker/do.js.map +1 -0
  668. package/dist/worker/entry.d.ts +23 -0
  669. package/dist/worker/entry.d.ts.map +1 -0
  670. package/dist/worker/entry.js +362 -0
  671. package/dist/worker/entry.js.map +1 -0
  672. package/dist/worker/errors.d.ts +106 -0
  673. package/dist/worker/errors.d.ts.map +1 -0
  674. package/dist/worker/errors.js +178 -0
  675. package/dist/worker/errors.js.map +1 -0
  676. package/dist/worker/health-check-manager.d.ts +141 -0
  677. package/dist/worker/health-check-manager.d.ts.map +1 -0
  678. package/dist/worker/health-check-manager.js +145 -0
  679. package/dist/worker/health-check-manager.js.map +1 -0
  680. package/dist/worker/index.d.ts +60 -0
  681. package/dist/worker/index.d.ts.map +1 -0
  682. package/dist/worker/index.js +67 -0
  683. package/dist/worker/index.js.map +1 -0
  684. package/dist/worker/memory-pressure.d.ts +892 -0
  685. package/dist/worker/memory-pressure.d.ts.map +1 -0
  686. package/dist/worker/memory-pressure.js +1990 -0
  687. package/dist/worker/memory-pressure.js.map +1 -0
  688. package/dist/worker/migration-manager.d.ts +153 -0
  689. package/dist/worker/migration-manager.d.ts.map +1 -0
  690. package/dist/worker/migration-manager.js +461 -0
  691. package/dist/worker/migration-manager.js.map +1 -0
  692. package/dist/worker/plugin-manager.d.ts +147 -0
  693. package/dist/worker/plugin-manager.d.ts.map +1 -0
  694. package/dist/worker/plugin-manager.js +408 -0
  695. package/dist/worker/plugin-manager.js.map +1 -0
  696. package/dist/worker/proxy.d.ts +330 -0
  697. package/dist/worker/proxy.d.ts.map +1 -0
  698. package/dist/worker/proxy.js +504 -0
  699. package/dist/worker/proxy.js.map +1 -0
  700. package/dist/worker/query-execution-manager.d.ts +107 -0
  701. package/dist/worker/query-execution-manager.d.ts.map +1 -0
  702. package/dist/worker/query-execution-manager.js +155 -0
  703. package/dist/worker/query-execution-manager.js.map +1 -0
  704. package/dist/worker/query-executor.d.ts +163 -0
  705. package/dist/worker/query-executor.d.ts.map +1 -0
  706. package/dist/worker/query-executor.js +413 -0
  707. package/dist/worker/query-executor.js.map +1 -0
  708. package/dist/worker/query-stats-manager.d.ts +117 -0
  709. package/dist/worker/query-stats-manager.d.ts.map +1 -0
  710. package/dist/worker/query-stats-manager.js +162 -0
  711. package/dist/worker/query-stats-manager.js.map +1 -0
  712. package/dist/worker/result-handler.d.ts +192 -0
  713. package/dist/worker/result-handler.d.ts.map +1 -0
  714. package/dist/worker/result-handler.js +346 -0
  715. package/dist/worker/result-handler.js.map +1 -0
  716. package/dist/worker/routes.d.ts +135 -0
  717. package/dist/worker/routes.d.ts.map +1 -0
  718. package/dist/worker/routes.js +460 -0
  719. package/dist/worker/routes.js.map +1 -0
  720. package/dist/worker/rpc-methods-manager.d.ts +142 -0
  721. package/dist/worker/rpc-methods-manager.d.ts.map +1 -0
  722. package/dist/worker/rpc-methods-manager.js +195 -0
  723. package/dist/worker/rpc-methods-manager.js.map +1 -0
  724. package/dist/worker/rpc.d.ts +259 -0
  725. package/dist/worker/rpc.d.ts.map +1 -0
  726. package/dist/worker/rpc.js +398 -0
  727. package/dist/worker/rpc.js.map +1 -0
  728. package/dist/worker/schema-version.d.ts +209 -0
  729. package/dist/worker/schema-version.d.ts.map +1 -0
  730. package/dist/worker/schema-version.js +450 -0
  731. package/dist/worker/schema-version.js.map +1 -0
  732. package/dist/worker/session-manager.d.ts +282 -0
  733. package/dist/worker/session-manager.d.ts.map +1 -0
  734. package/dist/worker/session-manager.js +523 -0
  735. package/dist/worker/session-manager.js.map +1 -0
  736. package/dist/worker/shutdown-manager.d.ts +188 -0
  737. package/dist/worker/shutdown-manager.d.ts.map +1 -0
  738. package/dist/worker/shutdown-manager.js +347 -0
  739. package/dist/worker/shutdown-manager.js.map +1 -0
  740. package/dist/worker/sql-transform.d.ts +61 -0
  741. package/dist/worker/sql-transform.d.ts.map +1 -0
  742. package/dist/worker/sql-transform.js +312 -0
  743. package/dist/worker/sql-transform.js.map +1 -0
  744. package/dist/worker/types.d.ts +738 -0
  745. package/dist/worker/types.d.ts.map +1 -0
  746. package/dist/worker/types.js +6 -0
  747. package/dist/worker/types.js.map +1 -0
  748. package/dist/worker/user-routes.d.ts +76 -0
  749. package/dist/worker/user-routes.d.ts.map +1 -0
  750. package/dist/worker/user-routes.js +188 -0
  751. package/dist/worker/user-routes.js.map +1 -0
  752. package/dist/worker/wal-facade.d.ts +138 -0
  753. package/dist/worker/wal-facade.d.ts.map +1 -0
  754. package/dist/worker/wal-facade.js +184 -0
  755. package/dist/worker/wal-facade.js.map +1 -0
  756. package/dist/worker/wal-r2.d.ts +271 -0
  757. package/dist/worker/wal-r2.d.ts.map +1 -0
  758. package/dist/worker/wal-r2.js +689 -0
  759. package/dist/worker/wal-r2.js.map +1 -0
  760. package/dist/worker/wal-replay.d.ts +361 -0
  761. package/dist/worker/wal-replay.d.ts.map +1 -0
  762. package/dist/worker/wal-replay.js +628 -0
  763. package/dist/worker/wal-replay.js.map +1 -0
  764. package/dist/worker/wal-retention.d.ts +389 -0
  765. package/dist/worker/wal-retention.d.ts.map +1 -0
  766. package/dist/worker/wal-retention.js +763 -0
  767. package/dist/worker/wal-retention.js.map +1 -0
  768. package/dist/worker/wal.d.ts +278 -0
  769. package/dist/worker/wal.d.ts.map +1 -0
  770. package/dist/worker/wal.js +467 -0
  771. package/dist/worker/wal.js.map +1 -0
  772. package/dist/worker/websocket.d.ts +85 -0
  773. package/dist/worker/websocket.d.ts.map +1 -0
  774. package/dist/worker/websocket.js +227 -0
  775. package/dist/worker/websocket.js.map +1 -0
  776. package/package.json +108 -0
  777. package/src/cdc/change-stream.ts +137 -0
  778. package/src/cdc/filter.ts +646 -0
  779. package/src/cdc/index.ts +112 -0
  780. package/src/cdc/resume-token.ts +280 -0
  781. package/src/cdc/transport/index.ts +7 -0
  782. package/src/cdc/transport/sse.ts +723 -0
  783. package/src/cdc/transport/websocket.ts +873 -0
  784. package/src/cdc/types.ts +346 -0
  785. package/src/config/index.ts +25 -0
  786. package/src/config/memory.ts +177 -0
  787. package/src/config/storage.ts +204 -0
  788. package/src/config/streaming.ts +147 -0
  789. package/src/config/timeouts.ts +221 -0
  790. package/src/extensions/config.test.ts +187 -0
  791. package/src/extensions/config.ts +278 -0
  792. package/src/extensions/geo.test.ts +455 -0
  793. package/src/extensions/geo.ts +858 -0
  794. package/src/extensions/index.test.ts +259 -0
  795. package/src/extensions/index.ts +227 -0
  796. package/src/extensions/loader.test.ts +555 -0
  797. package/src/extensions/loader.ts +588 -0
  798. package/src/extensions/pgmq-lite.test.ts +727 -0
  799. package/src/extensions/pgmq-lite.ts +770 -0
  800. package/src/extensions/plugins.test.ts +528 -0
  801. package/src/extensions/plugins.ts +718 -0
  802. package/src/extensions/registry.test.ts +202 -0
  803. package/src/extensions/registry.ts +267 -0
  804. package/src/extensions/vector.test.ts +195 -0
  805. package/src/extensions/vector.ts +217 -0
  806. package/src/iceberg/SCHEDULER.md +580 -0
  807. package/src/iceberg/analytics.test.ts +703 -0
  808. package/src/iceberg/analytics.ts +727 -0
  809. package/src/iceberg/catalog-api.test.ts +838 -0
  810. package/src/iceberg/catalog-api.ts +520 -0
  811. package/src/iceberg/catalog.test.ts +680 -0
  812. package/src/iceberg/catalog.ts +1007 -0
  813. package/src/iceberg/iceberg.test.ts +705 -0
  814. package/src/iceberg/index.ts +406 -0
  815. package/src/iceberg/metadata.test.ts +632 -0
  816. package/src/iceberg/metadata.ts +649 -0
  817. package/src/iceberg/optimizer.test.ts +868 -0
  818. package/src/iceberg/optimizer.ts +1287 -0
  819. package/src/iceberg/parquet.test.ts +899 -0
  820. package/src/iceberg/parquet.ts +1640 -0
  821. package/src/iceberg/r2-organization.test.ts +615 -0
  822. package/src/iceberg/r2-organization.ts +951 -0
  823. package/src/iceberg/scheduler-do-example.ts +364 -0
  824. package/src/iceberg/scheduler.test.ts +861 -0
  825. package/src/iceberg/scheduler.ts +1201 -0
  826. package/src/iceberg/schema.test.ts +547 -0
  827. package/src/iceberg/schema.ts +616 -0
  828. package/src/iceberg/snapshot-manager.test.ts +919 -0
  829. package/src/iceberg/snapshot-manager.ts +1369 -0
  830. package/src/iceberg/sql-router.test.ts +334 -0
  831. package/src/iceberg/sql-router.ts +337 -0
  832. package/src/iceberg/test-fixtures.ts +605 -0
  833. package/src/iceberg/time-travel-api.test.ts +1029 -0
  834. package/src/iceberg/time-travel-api.ts +731 -0
  835. package/src/iceberg/time-travel.test.ts +1218 -0
  836. package/src/iceberg/time-travel.ts +1052 -0
  837. package/src/iceberg/transformer.test.ts +689 -0
  838. package/src/iceberg/transformer.ts +1029 -0
  839. package/src/iceberg/types.ts +373 -0
  840. package/src/iceberg/writer.test.ts +716 -0
  841. package/src/iceberg/writer.ts +590 -0
  842. package/src/index.ts +212 -0
  843. package/src/lineage/index.ts +42 -0
  844. package/src/lineage/integration.ts +334 -0
  845. package/src/lineage/tracker.ts +1618 -0
  846. package/src/lineage/types.ts +354 -0
  847. package/src/middleware/index.ts +36 -0
  848. package/src/middleware/rate-limit-concurrent.test.ts +794 -0
  849. package/src/middleware/rate-limit.test.ts +1568 -0
  850. package/src/middleware/rate-limit.ts +840 -0
  851. package/src/migration-tooling/external-migration.test.ts +1864 -0
  852. package/src/migration-tooling/external-migration.ts +2355 -0
  853. package/src/migration-tooling/index.ts +19 -0
  854. package/src/migrations/ARCHITECTURE.md +474 -0
  855. package/src/migrations/PROGRESS_TRACKING.md +485 -0
  856. package/src/migrations/auto-migrator.test.ts +732 -0
  857. package/src/migrations/auto-migrator.ts +531 -0
  858. package/src/migrations/bulk-orchestrator.test.ts +801 -0
  859. package/src/migrations/bulk-orchestrator.ts +1039 -0
  860. package/src/migrations/compatibility.test.ts +958 -0
  861. package/src/migrations/compatibility.ts +902 -0
  862. package/src/migrations/do-migrations.test.ts +2620 -0
  863. package/src/migrations/do-migrations.ts +1289 -0
  864. package/src/migrations/do-migrations.types.ts +715 -0
  865. package/src/migrations/drizzle-compat.test.ts +210 -0
  866. package/src/migrations/drizzle-compat.ts +337 -0
  867. package/src/migrations/index.ts +334 -0
  868. package/src/migrations/migration-api.test.ts +438 -0
  869. package/src/migrations/migration-api.ts +704 -0
  870. package/src/migrations/progress-tracker-do.ts +518 -0
  871. package/src/migrations/progress-tracker-kv.ts +305 -0
  872. package/src/migrations/progress-tracker.test.ts +937 -0
  873. package/src/migrations/progress-tracker.ts +665 -0
  874. package/src/migrations/registry.test.ts +331 -0
  875. package/src/migrations/registry.ts +468 -0
  876. package/src/migrations/rollback.test.ts +644 -0
  877. package/src/migrations/runner.test.ts +807 -0
  878. package/src/migrations/runner.test.ts.backup +759 -0
  879. package/src/migrations/runner.ts +1459 -0
  880. package/src/migrations/schema-generator.test.ts +649 -0
  881. package/src/migrations/schema-generator.ts +513 -0
  882. package/src/migrations/testing.ts +1037 -0
  883. package/src/migrations/types.ts +573 -0
  884. package/src/migrations/validator.test.ts +660 -0
  885. package/src/migrations/validator.ts +741 -0
  886. package/src/observability/alerting.test.ts +1133 -0
  887. package/src/observability/alerting.ts +455 -0
  888. package/src/observability/analytics-engine.ts +733 -0
  889. package/src/observability/cost-metrics.ts +804 -0
  890. package/src/observability/cross-do-tracing.test.ts +516 -0
  891. package/src/observability/cross-do-tracing.ts +588 -0
  892. package/src/observability/dashboards/postgres-do-overview.json +1656 -0
  893. package/src/observability/error-rate-collector.test.ts +977 -0
  894. package/src/observability/error-rate-collector.ts +518 -0
  895. package/src/observability/exporters.test.ts +365 -0
  896. package/src/observability/exporters.ts +650 -0
  897. package/src/observability/health-check.test.ts +353 -0
  898. package/src/observability/health-check.ts +341 -0
  899. package/src/observability/index.test.ts +298 -0
  900. package/src/observability/index.ts +885 -0
  901. package/src/observability/instrumentation.test.ts +428 -0
  902. package/src/observability/instrumentation.ts +788 -0
  903. package/src/observability/memory-metrics.test.ts +355 -0
  904. package/src/observability/memory-metrics.ts +990 -0
  905. package/src/observability/metrics-endpoint.test.ts +402 -0
  906. package/src/observability/metrics-endpoint.ts +374 -0
  907. package/src/observability/metrics.test.ts +291 -0
  908. package/src/observability/metrics.ts +315 -0
  909. package/src/observability/observability-features.ts +1296 -0
  910. package/src/observability/prometheus.test.ts +292 -0
  911. package/src/observability/prometheus.ts +170 -0
  912. package/src/observability/propagation.test.ts +417 -0
  913. package/src/observability/propagation.ts +294 -0
  914. package/src/observability/query-latency.ts +586 -0
  915. package/src/observability/query-performance.test.ts +406 -0
  916. package/src/observability/query-performance.ts +491 -0
  917. package/src/observability/storage-tier-metrics.test.ts +633 -0
  918. package/src/observability/storage-tier-metrics.ts +570 -0
  919. package/src/observability/tier-cost-optimizer.ts +740 -0
  920. package/src/observability/tracer.test.ts +346 -0
  921. package/src/observability/tracer.ts +585 -0
  922. package/src/observability/types.test.ts +726 -0
  923. package/src/observability/types.ts +434 -0
  924. package/src/pglite/auto-demotion.test.ts +477 -0
  925. package/src/pglite/auto-demotion.ts +385 -0
  926. package/src/pglite/auto-promotion.test.ts +824 -0
  927. package/src/pglite/auto-promotion.ts +547 -0
  928. package/src/pglite/cache-layer.test.ts +469 -0
  929. package/src/pglite/cache-layer.ts +271 -0
  930. package/src/pglite/cold-start-manager.ts +1260 -0
  931. package/src/pglite/cold-start-optimizer.test.ts +937 -0
  932. package/src/pglite/cold-start-optimizer.ts +1895 -0
  933. package/src/pglite/dovfs-adapter.ts +1122 -0
  934. package/src/pglite/dovfs.ts +1258 -0
  935. package/src/pglite/etag-cache.test.ts +844 -0
  936. package/src/pglite/etag-cache.ts +526 -0
  937. package/src/pglite/index.ts +442 -0
  938. package/src/pglite/init.test.ts +455 -0
  939. package/src/pglite/init.ts +574 -0
  940. package/src/pglite/lifecycle.test.ts +599 -0
  941. package/src/pglite/lifecycle.ts +704 -0
  942. package/src/pglite/parallel-loader.test.ts +586 -0
  943. package/src/pglite/parallel-loader.ts +481 -0
  944. package/src/pglite/production-pglite.test.ts +666 -0
  945. package/src/pglite/production-pglite.ts +537 -0
  946. package/src/pglite/query-executor.ts +614 -0
  947. package/src/pglite/r2-layer.test.ts +501 -0
  948. package/src/pglite/r2-layer.ts +322 -0
  949. package/src/pglite/tiered-init.test.ts +725 -0
  950. package/src/pglite/tiered-init.ts +556 -0
  951. package/src/pglite/tiered-vfs.test.ts +726 -0
  952. package/src/pglite/tiered-vfs.ts +33 -0
  953. package/src/pglite/tiering-stats.test.ts +531 -0
  954. package/src/pglite/tiering-stats.ts +407 -0
  955. package/src/pglite/transaction-hooks.ts +343 -0
  956. package/src/pglite/warm-loader.test.ts +1701 -0
  957. package/src/pglite/warm-loader.ts +528 -0
  958. package/src/pglite/workers-pglite.ts +224 -0
  959. package/src/pglite-assets/pglite.data +0 -0
  960. package/src/pglite-assets/pglite.wasm +0 -0
  961. package/src/pglite.d.ts +47 -0
  962. package/src/playground/index.ts +137 -0
  963. package/src/playground/keyboard-shortcuts.ts +677 -0
  964. package/src/playground/playground.ts +323 -0
  965. package/src/playground/query-executor.ts +669 -0
  966. package/src/playground/query-history.ts +328 -0
  967. package/src/playground/result-formatter.ts +420 -0
  968. package/src/playground/sample-datasets.ts +674 -0
  969. package/src/playground/sample-queries.ts +1168 -0
  970. package/src/playground/schema-explorer.ts +558 -0
  971. package/src/playground/types.ts +518 -0
  972. package/src/readonly/cache-reader.test.ts +460 -0
  973. package/src/readonly/cache-reader.ts +313 -0
  974. package/src/readonly/config.test.ts +187 -0
  975. package/src/readonly/config.ts +128 -0
  976. package/src/readonly/index.ts +50 -0
  977. package/src/readonly/pglite-wrapper.test.ts +278 -0
  978. package/src/readonly/pglite-wrapper.ts +184 -0
  979. package/src/readonly/worker.test.ts +533 -0
  980. package/src/readonly/worker.ts +341 -0
  981. package/src/readonly/write-blocker.test.ts +459 -0
  982. package/src/readonly/write-blocker.ts +175 -0
  983. package/src/recovery/disaster-recovery.test.ts +618 -0
  984. package/src/recovery/disaster-recovery.ts +1181 -0
  985. package/src/recovery/index.ts +43 -0
  986. package/src/recovery/parquet-parser.ts +974 -0
  987. package/src/retention/index.ts +74 -0
  988. package/src/retention/policy.test.ts +571 -0
  989. package/src/retention/policy.ts +774 -0
  990. package/src/retention/purger.test.ts +465 -0
  991. package/src/retention/purger.ts +558 -0
  992. package/src/rls/auth-integration.test.ts +752 -0
  993. package/src/rls/auth-integration.ts +533 -0
  994. package/src/rls/generator.test.ts +829 -0
  995. package/src/rls/generator.ts +573 -0
  996. package/src/rls/index.ts +128 -0
  997. package/src/rls/policy.ts +208 -0
  998. package/src/rls/rls.test.ts +1071 -0
  999. package/src/rls/validator.test.ts +930 -0
  1000. package/src/rls/validator.ts +895 -0
  1001. package/src/routing/adaptive-router.test.ts +884 -0
  1002. package/src/routing/adaptive-router.ts +845 -0
  1003. package/src/routing/circuit-breaker.test.ts +1505 -0
  1004. package/src/routing/circuit-breaker.ts +852 -0
  1005. package/src/routing/cost-metrics.test.ts +565 -0
  1006. package/src/routing/cost-metrics.ts +408 -0
  1007. package/src/routing/do-connection-pool.test.ts +1109 -0
  1008. package/src/routing/do-connection-pool.ts +828 -0
  1009. package/src/routing/index.ts +158 -0
  1010. package/src/routing/query-complexity-estimator.test.ts +356 -0
  1011. package/src/routing/query-complexity-estimator.ts +444 -0
  1012. package/src/routing/request-coalescing.test.ts +738 -0
  1013. package/src/routing/request-coalescing.ts +475 -0
  1014. package/src/routing/runtime-router.test.ts +436 -0
  1015. package/src/routing/runtime-router.ts +357 -0
  1016. package/src/routing/tenant-router.test.ts +2493 -0
  1017. package/src/routing/tenant-router.ts +1908 -0
  1018. package/src/routing/websocket-pool.test.ts +551 -0
  1019. package/src/routing/websocket-pool.ts +577 -0
  1020. package/src/storage/access-pattern-tracker.test.ts +874 -0
  1021. package/src/storage/cache-layer.test.ts +560 -0
  1022. package/src/storage/cache-layer.ts +328 -0
  1023. package/src/storage/cost-aware-tiering.test.ts +652 -0
  1024. package/src/storage/cost-aware-tiering.ts +794 -0
  1025. package/src/storage/do-sqlite-blobs.test.ts +937 -0
  1026. package/src/storage/index.ts +272 -0
  1027. package/src/storage/interfaces.ts +974 -0
  1028. package/src/storage/r2-layer.test.ts +653 -0
  1029. package/src/storage/r2-layer.ts +434 -0
  1030. package/src/storage/r2-overflow.ts +920 -0
  1031. package/src/storage/r2-page-vfs.test.ts +2348 -0
  1032. package/src/storage/r2-page-vfs.ts +1054 -0
  1033. package/src/storage/swr-cache.test.ts +832 -0
  1034. package/src/storage/swr-cache.ts +398 -0
  1035. package/src/storage/swr-tiered-integration.test.ts +617 -0
  1036. package/src/storage/tiered-orchestrator.test.ts +2441 -0
  1037. package/src/storage/tiered-orchestrator.ts +2081 -0
  1038. package/src/storage/tiered-vfs-swr.test.ts +736 -0
  1039. package/src/storage/tiered-vfs-swr.ts +735 -0
  1040. package/src/storage/tiered-vfs.test.ts +793 -0
  1041. package/src/storage/tiered-vfs.ts +1082 -0
  1042. package/src/streaming/backpressure-controller.ts +452 -0
  1043. package/src/streaming/buffer-pool.ts +484 -0
  1044. package/src/streaming/cdc-iceberg-connector.ts +605 -0
  1045. package/src/streaming/index.ts +225 -0
  1046. package/src/streaming/live-cdc-stream.ts +985 -0
  1047. package/src/streaming/memory-bounded-stream.ts +443 -0
  1048. package/src/streaming/query-streamer.ts +662 -0
  1049. package/src/streaming/response-streaming.ts +557 -0
  1050. package/src/types/branded.ts +1075 -0
  1051. package/src/types/branded.ts.backup +273 -0
  1052. package/src/types/utilities.ts +1023 -0
  1053. package/src/types/wasm.d.ts +30 -0
  1054. package/src/validation/typed-errors.test.ts +420 -0
  1055. package/src/wal/replay-engine.ts +1264 -0
  1056. package/src/worker/__mocks__/capnweb.ts +15 -0
  1057. package/src/worker/__mocks__/pglite.data.ts +22 -0
  1058. package/src/worker/__mocks__/pglite.wasm.ts +33 -0
  1059. package/src/worker/auth-rate-limiter.test.ts +272 -0
  1060. package/src/worker/auth-rate-limiter.ts +448 -0
  1061. package/src/worker/auth.security-red.test.ts +1236 -0
  1062. package/src/worker/auth.security.test.ts +822 -0
  1063. package/src/worker/auth.test.ts +469 -0
  1064. package/src/worker/auth.ts +1104 -0
  1065. package/src/worker/cdc-backpressure.test.ts +726 -0
  1066. package/src/worker/cdc-backpressure.ts +866 -0
  1067. package/src/worker/cdc-sse.test.ts +780 -0
  1068. package/src/worker/cdc-sse.ts +728 -0
  1069. package/src/worker/cdc-websocket.ts +1229 -0
  1070. package/src/worker/cdc-ws.test.ts +1009 -0
  1071. package/src/worker/cdc.test.ts +327 -0
  1072. package/src/worker/cdc.ts +289 -0
  1073. package/src/worker/concerns/auth-concern.ts +179 -0
  1074. package/src/worker/concerns/cdc-concern.ts +247 -0
  1075. package/src/worker/concerns/index.ts +58 -0
  1076. package/src/worker/concerns/query-execution-concern.ts +194 -0
  1077. package/src/worker/concerns/storage-orchestration-concern.ts +373 -0
  1078. package/src/worker/discriminated-types.test.ts +280 -0
  1079. package/src/worker/do-auth-manager.ts +257 -0
  1080. package/src/worker/do-decomposition.test.ts +1236 -0
  1081. package/src/worker/do-pglite-manager.ts +302 -0
  1082. package/src/worker/do.test.ts +2254 -0
  1083. package/src/worker/do.ts +1878 -0
  1084. package/src/worker/entry.ts +417 -0
  1085. package/src/worker/errors.ts +285 -0
  1086. package/src/worker/health-check-manager.test.ts +261 -0
  1087. package/src/worker/health-check-manager.ts +231 -0
  1088. package/src/worker/index.ts +389 -0
  1089. package/src/worker/memory-pressure.test.ts +1460 -0
  1090. package/src/worker/memory-pressure.ts +2650 -0
  1091. package/src/worker/migration-manager.ts +582 -0
  1092. package/src/worker/neon-compat.test.ts +332 -0
  1093. package/src/worker/plugin-manager.ts +485 -0
  1094. package/src/worker/postgres.do-rpc.d.ts +76 -0
  1095. package/src/worker/proxy.ts +694 -0
  1096. package/src/worker/query-execution-manager.test.ts +303 -0
  1097. package/src/worker/query-execution-manager.ts +219 -0
  1098. package/src/worker/query-executor.test.ts +282 -0
  1099. package/src/worker/query-executor.ts +560 -0
  1100. package/src/worker/query-stats-manager.ts +229 -0
  1101. package/src/worker/result-handler.test.ts +364 -0
  1102. package/src/worker/result-handler.ts +510 -0
  1103. package/src/worker/routes.test.ts +795 -0
  1104. package/src/worker/routes.ts +650 -0
  1105. package/src/worker/rpc-methods-manager.test.ts +326 -0
  1106. package/src/worker/rpc-methods-manager.ts +276 -0
  1107. package/src/worker/rpc.ts +524 -0
  1108. package/src/worker/schema-version.ts +605 -0
  1109. package/src/worker/session-manager.test.ts +506 -0
  1110. package/src/worker/session-manager.ts +732 -0
  1111. package/src/worker/shutdown-manager.ts +469 -0
  1112. package/src/worker/sql-transform.test.ts +286 -0
  1113. package/src/worker/sql-transform.ts +368 -0
  1114. package/src/worker/supabase-compat.test.ts +621 -0
  1115. package/src/worker/types.test.ts +292 -0
  1116. package/src/worker/types.ts +873 -0
  1117. package/src/worker/user-routes.test.ts +703 -0
  1118. package/src/worker/user-routes.ts +303 -0
  1119. package/src/worker/wal-facade.ts +235 -0
  1120. package/src/worker/wal-r2.test.ts +570 -0
  1121. package/src/worker/wal-r2.ts +930 -0
  1122. package/src/worker/wal-replay.test.ts +845 -0
  1123. package/src/worker/wal-replay.ts +897 -0
  1124. package/src/worker/wal-retention.test.ts +758 -0
  1125. package/src/worker/wal-retention.ts +1075 -0
  1126. package/src/worker/wal.test.ts +618 -0
  1127. package/src/worker/wal.ts +697 -0
  1128. package/src/worker/websocket.test.ts +296 -0
  1129. package/src/worker/websocket.ts +284 -0
@@ -0,0 +1,1095 @@
1
+ /**
2
+ * Sample Queries for Playground
3
+ *
4
+ * Provides pre-built sample queries for common SQL operations,
5
+ * organized by category for easy discovery and learning.
6
+ *
7
+ * @module playground/sample-queries
8
+ */
9
+ /**
10
+ * Category information
11
+ */
12
+ export const SAMPLE_QUERY_CATEGORIES = [
13
+ {
14
+ id: 'basic-select',
15
+ name: 'Basic SELECT',
16
+ description: 'Fundamental SELECT queries to retrieve data',
17
+ },
18
+ {
19
+ id: 'filtering',
20
+ name: 'Filtering & Sorting',
21
+ description: 'WHERE clauses, ORDER BY, and LIMIT',
22
+ },
23
+ {
24
+ id: 'aggregation',
25
+ name: 'Aggregation',
26
+ description: 'GROUP BY, COUNT, SUM, AVG, and other aggregate functions',
27
+ },
28
+ {
29
+ id: 'joins',
30
+ name: 'Joins',
31
+ description: 'INNER JOIN, LEFT JOIN, and other join types',
32
+ },
33
+ {
34
+ id: 'subqueries',
35
+ name: 'Subqueries',
36
+ description: 'Nested queries, CTEs, and derived tables',
37
+ },
38
+ {
39
+ id: 'data-modification',
40
+ name: 'Data Modification',
41
+ description: 'INSERT, UPDATE, DELETE operations',
42
+ },
43
+ {
44
+ id: 'ddl',
45
+ name: 'Schema (DDL)',
46
+ description: 'CREATE, ALTER, DROP tables and indexes',
47
+ },
48
+ {
49
+ id: 'window-functions',
50
+ name: 'Window Functions',
51
+ description: 'ROW_NUMBER, RANK, LAG, LEAD, and partitioning',
52
+ },
53
+ {
54
+ id: 'json',
55
+ name: 'JSON Operations',
56
+ description: 'JSONB queries, operators, and functions',
57
+ },
58
+ {
59
+ id: 'text-search',
60
+ name: 'Text & Search',
61
+ description: 'LIKE, ILIKE, pattern matching, and full-text search',
62
+ },
63
+ {
64
+ id: 'date-time',
65
+ name: 'Date & Time',
66
+ description: 'Date/time functions, intervals, and formatting',
67
+ },
68
+ {
69
+ id: 'advanced',
70
+ name: 'Advanced',
71
+ description: 'Complex queries and PostgreSQL-specific features',
72
+ },
73
+ ];
74
+ /**
75
+ * All sample queries
76
+ */
77
+ export const SAMPLE_QUERIES = [
78
+ // ============================================================================
79
+ // Basic SELECT
80
+ // ============================================================================
81
+ {
82
+ id: 'basic-select-all',
83
+ name: 'Select All Rows',
84
+ category: 'basic-select',
85
+ description: 'Retrieve all columns and rows from a table',
86
+ sql: 'SELECT * FROM users;',
87
+ difficulty: 'beginner',
88
+ requiresSampleData: true,
89
+ tags: ['select', 'basic'],
90
+ },
91
+ {
92
+ id: 'basic-select-columns',
93
+ name: 'Select Specific Columns',
94
+ category: 'basic-select',
95
+ description: 'Retrieve only specific columns from a table',
96
+ sql: 'SELECT name, email FROM users;',
97
+ difficulty: 'beginner',
98
+ requiresSampleData: true,
99
+ tags: ['select', 'columns'],
100
+ },
101
+ {
102
+ id: 'basic-select-alias',
103
+ name: 'Column Aliases',
104
+ category: 'basic-select',
105
+ description: 'Rename columns in the result using AS',
106
+ sql: `SELECT
107
+ name AS user_name,
108
+ email AS contact_email,
109
+ created_at AS joined_date
110
+ FROM users;`,
111
+ difficulty: 'beginner',
112
+ requiresSampleData: true,
113
+ tags: ['select', 'alias', 'as'],
114
+ },
115
+ {
116
+ id: 'basic-select-distinct',
117
+ name: 'Select Distinct Values',
118
+ category: 'basic-select',
119
+ description: 'Remove duplicate rows from results',
120
+ sql: `SELECT DISTINCT user_id
121
+ FROM posts
122
+ ORDER BY user_id;`,
123
+ difficulty: 'beginner',
124
+ requiresSampleData: true,
125
+ tags: ['select', 'distinct', 'unique'],
126
+ },
127
+ {
128
+ id: 'basic-select-expression',
129
+ name: 'Calculated Columns',
130
+ category: 'basic-select',
131
+ description: 'Create computed values in SELECT',
132
+ sql: `SELECT
133
+ 1 + 1 AS addition,
134
+ 10 * 5 AS multiplication,
135
+ UPPER('hello') AS uppercase,
136
+ NOW() AS current_time;`,
137
+ difficulty: 'beginner',
138
+ tags: ['select', 'expression', 'computed'],
139
+ },
140
+ // ============================================================================
141
+ // Filtering & Sorting
142
+ // ============================================================================
143
+ {
144
+ id: 'filter-where-equals',
145
+ name: 'Simple WHERE Clause',
146
+ category: 'filtering',
147
+ description: 'Filter rows with exact match',
148
+ sql: `SELECT * FROM users
149
+ WHERE name = 'Alice Johnson';`,
150
+ difficulty: 'beginner',
151
+ requiresSampleData: true,
152
+ tags: ['where', 'filter', 'equals'],
153
+ },
154
+ {
155
+ id: 'filter-where-multiple',
156
+ name: 'Multiple Conditions (AND/OR)',
157
+ category: 'filtering',
158
+ description: 'Combine conditions with AND/OR',
159
+ sql: `SELECT * FROM posts
160
+ WHERE published = true
161
+ AND user_id = 1;`,
162
+ difficulty: 'beginner',
163
+ requiresSampleData: true,
164
+ tags: ['where', 'and', 'or', 'filter'],
165
+ },
166
+ {
167
+ id: 'filter-where-in',
168
+ name: 'IN Operator',
169
+ category: 'filtering',
170
+ description: 'Match against a list of values',
171
+ sql: `SELECT * FROM users
172
+ WHERE id IN (1, 2, 3);`,
173
+ difficulty: 'beginner',
174
+ requiresSampleData: true,
175
+ tags: ['where', 'in', 'list'],
176
+ },
177
+ {
178
+ id: 'filter-where-between',
179
+ name: 'BETWEEN Range',
180
+ category: 'filtering',
181
+ description: 'Filter values within a range',
182
+ sql: `SELECT * FROM users
183
+ WHERE id BETWEEN 2 AND 4;`,
184
+ difficulty: 'beginner',
185
+ requiresSampleData: true,
186
+ tags: ['where', 'between', 'range'],
187
+ },
188
+ {
189
+ id: 'filter-where-null',
190
+ name: 'NULL Checks',
191
+ category: 'filtering',
192
+ description: 'Check for NULL or NOT NULL values',
193
+ sql: `-- Find posts with no body
194
+ SELECT * FROM posts
195
+ WHERE body IS NULL;
196
+
197
+ -- Find posts with body
198
+ SELECT * FROM posts
199
+ WHERE body IS NOT NULL;`,
200
+ difficulty: 'beginner',
201
+ requiresSampleData: true,
202
+ tags: ['where', 'null', 'is null'],
203
+ },
204
+ {
205
+ id: 'filter-order-by',
206
+ name: 'Sorting Results',
207
+ category: 'filtering',
208
+ description: 'Order results by one or more columns',
209
+ sql: `SELECT * FROM users
210
+ ORDER BY name ASC;
211
+
212
+ -- Multiple columns, mixed direction
213
+ SELECT * FROM posts
214
+ ORDER BY user_id ASC, created_at DESC;`,
215
+ difficulty: 'beginner',
216
+ requiresSampleData: true,
217
+ tags: ['order by', 'sort', 'asc', 'desc'],
218
+ },
219
+ {
220
+ id: 'filter-limit-offset',
221
+ name: 'Pagination with LIMIT/OFFSET',
222
+ category: 'filtering',
223
+ description: 'Limit results and skip rows for pagination',
224
+ sql: `-- First page (5 results)
225
+ SELECT * FROM posts
226
+ ORDER BY id
227
+ LIMIT 5;
228
+
229
+ -- Second page (skip first 5)
230
+ SELECT * FROM posts
231
+ ORDER BY id
232
+ LIMIT 5 OFFSET 5;`,
233
+ difficulty: 'beginner',
234
+ requiresSampleData: true,
235
+ tags: ['limit', 'offset', 'pagination'],
236
+ },
237
+ // ============================================================================
238
+ // Aggregation
239
+ // ============================================================================
240
+ {
241
+ id: 'agg-count',
242
+ name: 'COUNT Rows',
243
+ category: 'aggregation',
244
+ description: 'Count total rows or non-null values',
245
+ sql: `-- Total users
246
+ SELECT COUNT(*) AS total_users FROM users;
247
+
248
+ -- Count non-null values
249
+ SELECT COUNT(email) AS users_with_email FROM users;`,
250
+ difficulty: 'beginner',
251
+ requiresSampleData: true,
252
+ tags: ['count', 'aggregate'],
253
+ },
254
+ {
255
+ id: 'agg-sum-avg',
256
+ name: 'SUM and AVG',
257
+ category: 'aggregation',
258
+ description: 'Calculate sum and average of numeric columns',
259
+ sql: `SELECT
260
+ COUNT(*) AS total_posts,
261
+ SUM(CASE WHEN published THEN 1 ELSE 0 END) AS published_count,
262
+ AVG(CASE WHEN published THEN 1 ELSE 0 END) * 100 AS published_pct
263
+ FROM posts;`,
264
+ difficulty: 'intermediate',
265
+ requiresSampleData: true,
266
+ tags: ['sum', 'avg', 'average', 'aggregate'],
267
+ },
268
+ {
269
+ id: 'agg-min-max',
270
+ name: 'MIN and MAX',
271
+ category: 'aggregation',
272
+ description: 'Find minimum and maximum values',
273
+ sql: `SELECT
274
+ MIN(created_at) AS first_user,
275
+ MAX(created_at) AS latest_user
276
+ FROM users;`,
277
+ difficulty: 'beginner',
278
+ requiresSampleData: true,
279
+ tags: ['min', 'max', 'aggregate'],
280
+ },
281
+ {
282
+ id: 'agg-group-by',
283
+ name: 'GROUP BY',
284
+ category: 'aggregation',
285
+ description: 'Group rows and calculate aggregates per group',
286
+ sql: `SELECT
287
+ user_id,
288
+ COUNT(*) AS post_count,
289
+ SUM(CASE WHEN published THEN 1 ELSE 0 END) AS published
290
+ FROM posts
291
+ GROUP BY user_id
292
+ ORDER BY post_count DESC;`,
293
+ difficulty: 'intermediate',
294
+ requiresSampleData: true,
295
+ tags: ['group by', 'aggregate', 'grouping'],
296
+ },
297
+ {
298
+ id: 'agg-having',
299
+ name: 'HAVING Clause',
300
+ category: 'aggregation',
301
+ description: 'Filter groups after aggregation',
302
+ sql: `SELECT
303
+ user_id,
304
+ COUNT(*) AS post_count
305
+ FROM posts
306
+ GROUP BY user_id
307
+ HAVING COUNT(*) > 2
308
+ ORDER BY post_count DESC;`,
309
+ difficulty: 'intermediate',
310
+ requiresSampleData: true,
311
+ tags: ['having', 'group by', 'filter'],
312
+ },
313
+ // ============================================================================
314
+ // Joins
315
+ // ============================================================================
316
+ {
317
+ id: 'join-inner',
318
+ name: 'INNER JOIN',
319
+ category: 'joins',
320
+ description: 'Combine rows from two tables where keys match',
321
+ sql: `SELECT
322
+ u.name AS author,
323
+ p.title,
324
+ p.published
325
+ FROM posts p
326
+ INNER JOIN users u ON u.id = p.user_id
327
+ ORDER BY u.name, p.title;`,
328
+ difficulty: 'intermediate',
329
+ requiresSampleData: true,
330
+ tags: ['join', 'inner join'],
331
+ },
332
+ {
333
+ id: 'join-left',
334
+ name: 'LEFT JOIN',
335
+ category: 'joins',
336
+ description: 'Include all rows from left table, match from right',
337
+ sql: `SELECT
338
+ u.name,
339
+ COUNT(p.id) AS post_count
340
+ FROM users u
341
+ LEFT JOIN posts p ON p.user_id = u.id
342
+ GROUP BY u.id, u.name
343
+ ORDER BY post_count DESC;`,
344
+ difficulty: 'intermediate',
345
+ requiresSampleData: true,
346
+ tags: ['join', 'left join', 'outer'],
347
+ },
348
+ {
349
+ id: 'join-multiple',
350
+ name: 'Multiple Joins',
351
+ category: 'joins',
352
+ description: 'Join three or more tables',
353
+ sql: `SELECT
354
+ u.name AS commenter,
355
+ p.title AS post_title,
356
+ c.content AS comment
357
+ FROM comments c
358
+ JOIN users u ON u.id = c.user_id
359
+ JOIN posts p ON p.id = c.post_id
360
+ ORDER BY c.created_at DESC
361
+ LIMIT 10;`,
362
+ difficulty: 'intermediate',
363
+ requiresSampleData: true,
364
+ tags: ['join', 'multiple', 'three tables'],
365
+ },
366
+ {
367
+ id: 'join-self',
368
+ name: 'Self Join',
369
+ category: 'joins',
370
+ description: 'Join a table to itself',
371
+ sql: `-- Find users who joined on the same day
372
+ SELECT
373
+ u1.name AS user1,
374
+ u2.name AS user2,
375
+ DATE(u1.created_at) AS joined_date
376
+ FROM users u1
377
+ JOIN users u2 ON DATE(u1.created_at) = DATE(u2.created_at)
378
+ AND u1.id < u2.id
379
+ ORDER BY joined_date;`,
380
+ difficulty: 'advanced',
381
+ requiresSampleData: true,
382
+ tags: ['join', 'self join'],
383
+ },
384
+ // ============================================================================
385
+ // Subqueries
386
+ // ============================================================================
387
+ {
388
+ id: 'subquery-where',
389
+ name: 'Subquery in WHERE',
390
+ category: 'subqueries',
391
+ description: 'Use a subquery to filter results',
392
+ sql: `SELECT * FROM posts
393
+ WHERE user_id IN (
394
+ SELECT id FROM users
395
+ WHERE name LIKE 'A%'
396
+ );`,
397
+ difficulty: 'intermediate',
398
+ requiresSampleData: true,
399
+ tags: ['subquery', 'nested', 'where'],
400
+ },
401
+ {
402
+ id: 'subquery-exists',
403
+ name: 'EXISTS Subquery',
404
+ category: 'subqueries',
405
+ description: 'Check if subquery returns any rows',
406
+ sql: `-- Users who have written at least one post
407
+ SELECT * FROM users u
408
+ WHERE EXISTS (
409
+ SELECT 1 FROM posts p
410
+ WHERE p.user_id = u.id
411
+ );`,
412
+ difficulty: 'intermediate',
413
+ requiresSampleData: true,
414
+ tags: ['subquery', 'exists', 'correlated'],
415
+ },
416
+ {
417
+ id: 'subquery-cte',
418
+ name: 'Common Table Expression (CTE)',
419
+ category: 'subqueries',
420
+ description: 'Use WITH clause for readable subqueries',
421
+ sql: `WITH user_post_counts AS (
422
+ SELECT
423
+ user_id,
424
+ COUNT(*) AS post_count
425
+ FROM posts
426
+ GROUP BY user_id
427
+ )
428
+ SELECT
429
+ u.name,
430
+ COALESCE(upc.post_count, 0) AS posts
431
+ FROM users u
432
+ LEFT JOIN user_post_counts upc ON upc.user_id = u.id
433
+ ORDER BY posts DESC;`,
434
+ difficulty: 'intermediate',
435
+ requiresSampleData: true,
436
+ tags: ['cte', 'with', 'common table expression'],
437
+ },
438
+ {
439
+ id: 'subquery-derived-table',
440
+ name: 'Derived Table (FROM Subquery)',
441
+ category: 'subqueries',
442
+ description: 'Use a subquery as a table in FROM',
443
+ sql: `SELECT
444
+ stats.user_id,
445
+ u.name,
446
+ stats.total_posts,
447
+ stats.published_posts
448
+ FROM (
449
+ SELECT
450
+ user_id,
451
+ COUNT(*) AS total_posts,
452
+ SUM(CASE WHEN published THEN 1 ELSE 0 END) AS published_posts
453
+ FROM posts
454
+ GROUP BY user_id
455
+ ) AS stats
456
+ JOIN users u ON u.id = stats.user_id
457
+ ORDER BY stats.total_posts DESC;`,
458
+ difficulty: 'intermediate',
459
+ requiresSampleData: true,
460
+ tags: ['subquery', 'derived table', 'from'],
461
+ },
462
+ // ============================================================================
463
+ // Data Modification
464
+ // ============================================================================
465
+ {
466
+ id: 'dml-insert-single',
467
+ name: 'INSERT Single Row',
468
+ category: 'data-modification',
469
+ description: 'Insert a single row into a table',
470
+ sql: `INSERT INTO users (name, email)
471
+ VALUES ('New User', 'newuser@example.com')
472
+ RETURNING *;`,
473
+ difficulty: 'beginner',
474
+ requiresSampleData: true,
475
+ tags: ['insert', 'dml', 'returning'],
476
+ },
477
+ {
478
+ id: 'dml-insert-multiple',
479
+ name: 'INSERT Multiple Rows',
480
+ category: 'data-modification',
481
+ description: 'Insert several rows at once',
482
+ sql: `INSERT INTO users (name, email) VALUES
483
+ ('User A', 'usera@example.com'),
484
+ ('User B', 'userb@example.com'),
485
+ ('User C', 'userc@example.com')
486
+ RETURNING id, name;`,
487
+ difficulty: 'beginner',
488
+ requiresSampleData: true,
489
+ tags: ['insert', 'bulk', 'multiple'],
490
+ },
491
+ {
492
+ id: 'dml-update',
493
+ name: 'UPDATE Rows',
494
+ category: 'data-modification',
495
+ description: 'Update existing rows',
496
+ sql: `UPDATE posts
497
+ SET published = true
498
+ WHERE user_id = 1 AND published = false
499
+ RETURNING id, title, published;`,
500
+ difficulty: 'beginner',
501
+ requiresSampleData: true,
502
+ tags: ['update', 'dml', 'modify'],
503
+ },
504
+ {
505
+ id: 'dml-delete',
506
+ name: 'DELETE Rows',
507
+ category: 'data-modification',
508
+ description: 'Remove rows from a table',
509
+ sql: `-- Delete unpublished posts (example - be careful!)
510
+ DELETE FROM posts
511
+ WHERE published = false
512
+ RETURNING id, title;`,
513
+ difficulty: 'beginner',
514
+ requiresSampleData: true,
515
+ tags: ['delete', 'dml', 'remove'],
516
+ },
517
+ {
518
+ id: 'dml-upsert',
519
+ name: 'UPSERT (INSERT ON CONFLICT)',
520
+ category: 'data-modification',
521
+ description: 'Insert or update on conflict',
522
+ sql: `INSERT INTO users (name, email)
523
+ VALUES ('Alice Johnson', 'alice@example.com')
524
+ ON CONFLICT (email)
525
+ DO UPDATE SET name = EXCLUDED.name
526
+ RETURNING *;`,
527
+ difficulty: 'intermediate',
528
+ requiresSampleData: true,
529
+ tags: ['upsert', 'on conflict', 'merge'],
530
+ },
531
+ // ============================================================================
532
+ // DDL (Schema)
533
+ // ============================================================================
534
+ {
535
+ id: 'ddl-create-table',
536
+ name: 'CREATE TABLE',
537
+ category: 'ddl',
538
+ description: 'Create a new table with various column types',
539
+ sql: `CREATE TABLE IF NOT EXISTS products (
540
+ id SERIAL PRIMARY KEY,
541
+ name TEXT NOT NULL,
542
+ description TEXT,
543
+ price DECIMAL(10, 2) NOT NULL,
544
+ quantity INTEGER DEFAULT 0,
545
+ category TEXT,
546
+ created_at TIMESTAMP DEFAULT NOW(),
547
+ updated_at TIMESTAMP DEFAULT NOW()
548
+ );`,
549
+ difficulty: 'beginner',
550
+ tags: ['create', 'table', 'ddl'],
551
+ },
552
+ {
553
+ id: 'ddl-alter-table',
554
+ name: 'ALTER TABLE',
555
+ category: 'ddl',
556
+ description: 'Modify table structure',
557
+ sql: `-- Add a column
558
+ ALTER TABLE products ADD COLUMN sku TEXT UNIQUE;
559
+
560
+ -- Drop a column
561
+ -- ALTER TABLE products DROP COLUMN sku;
562
+
563
+ -- Add a constraint
564
+ ALTER TABLE products
565
+ ADD CONSTRAINT price_positive CHECK (price >= 0);`,
566
+ difficulty: 'intermediate',
567
+ tags: ['alter', 'table', 'ddl', 'modify'],
568
+ },
569
+ {
570
+ id: 'ddl-create-index',
571
+ name: 'CREATE INDEX',
572
+ category: 'ddl',
573
+ description: 'Create indexes for better query performance',
574
+ sql: `-- Simple index
575
+ CREATE INDEX IF NOT EXISTS idx_posts_user_id
576
+ ON posts(user_id);
577
+
578
+ -- Composite index
579
+ CREATE INDEX IF NOT EXISTS idx_posts_user_published
580
+ ON posts(user_id, published);
581
+
582
+ -- Partial index
583
+ CREATE INDEX IF NOT EXISTS idx_posts_published_only
584
+ ON posts(created_at)
585
+ WHERE published = true;`,
586
+ difficulty: 'intermediate',
587
+ requiresSampleData: true,
588
+ tags: ['index', 'ddl', 'performance'],
589
+ },
590
+ {
591
+ id: 'ddl-create-view',
592
+ name: 'CREATE VIEW',
593
+ category: 'ddl',
594
+ description: 'Create a virtual table from a query',
595
+ sql: `CREATE OR REPLACE VIEW user_post_summary AS
596
+ SELECT
597
+ u.id AS user_id,
598
+ u.name,
599
+ COUNT(p.id) AS total_posts,
600
+ SUM(CASE WHEN p.published THEN 1 ELSE 0 END) AS published_posts
601
+ FROM users u
602
+ LEFT JOIN posts p ON p.user_id = u.id
603
+ GROUP BY u.id, u.name;
604
+
605
+ -- Query the view
606
+ SELECT * FROM user_post_summary;`,
607
+ difficulty: 'intermediate',
608
+ requiresSampleData: true,
609
+ tags: ['view', 'ddl', 'virtual table'],
610
+ },
611
+ // ============================================================================
612
+ // Window Functions
613
+ // ============================================================================
614
+ {
615
+ id: 'window-row-number',
616
+ name: 'ROW_NUMBER',
617
+ category: 'window-functions',
618
+ description: 'Assign sequential numbers to rows',
619
+ sql: `SELECT
620
+ ROW_NUMBER() OVER (ORDER BY created_at) AS row_num,
621
+ name,
622
+ created_at
623
+ FROM users;`,
624
+ difficulty: 'intermediate',
625
+ requiresSampleData: true,
626
+ tags: ['window', 'row_number', 'ranking'],
627
+ },
628
+ {
629
+ id: 'window-rank',
630
+ name: 'RANK and DENSE_RANK',
631
+ category: 'window-functions',
632
+ description: 'Rank rows with ties handling',
633
+ sql: `WITH post_counts AS (
634
+ SELECT
635
+ user_id,
636
+ COUNT(*) AS post_count
637
+ FROM posts
638
+ GROUP BY user_id
639
+ )
640
+ SELECT
641
+ u.name,
642
+ pc.post_count,
643
+ RANK() OVER (ORDER BY pc.post_count DESC) AS rank,
644
+ DENSE_RANK() OVER (ORDER BY pc.post_count DESC) AS dense_rank
645
+ FROM post_counts pc
646
+ JOIN users u ON u.id = pc.user_id;`,
647
+ difficulty: 'intermediate',
648
+ requiresSampleData: true,
649
+ tags: ['window', 'rank', 'dense_rank', 'ranking'],
650
+ },
651
+ {
652
+ id: 'window-partition',
653
+ name: 'PARTITION BY',
654
+ category: 'window-functions',
655
+ description: 'Apply window function within groups',
656
+ sql: `SELECT
657
+ u.name AS author,
658
+ p.title,
659
+ p.created_at,
660
+ ROW_NUMBER() OVER (
661
+ PARTITION BY p.user_id
662
+ ORDER BY p.created_at
663
+ ) AS post_number
664
+ FROM posts p
665
+ JOIN users u ON u.id = p.user_id
666
+ ORDER BY u.name, post_number;`,
667
+ difficulty: 'intermediate',
668
+ requiresSampleData: true,
669
+ tags: ['window', 'partition', 'grouping'],
670
+ },
671
+ {
672
+ id: 'window-lag-lead',
673
+ name: 'LAG and LEAD',
674
+ category: 'window-functions',
675
+ description: 'Access previous/next row values',
676
+ sql: `SELECT
677
+ name,
678
+ created_at,
679
+ LAG(name) OVER (ORDER BY created_at) AS prev_user,
680
+ LEAD(name) OVER (ORDER BY created_at) AS next_user
681
+ FROM users
682
+ ORDER BY created_at;`,
683
+ difficulty: 'advanced',
684
+ requiresSampleData: true,
685
+ tags: ['window', 'lag', 'lead', 'previous', 'next'],
686
+ },
687
+ {
688
+ id: 'window-running-total',
689
+ name: 'Running Total',
690
+ category: 'window-functions',
691
+ description: 'Calculate cumulative sum',
692
+ sql: `SELECT
693
+ id,
694
+ title,
695
+ created_at,
696
+ COUNT(*) OVER (ORDER BY created_at) AS running_count,
697
+ SUM(CASE WHEN published THEN 1 ELSE 0 END) OVER (
698
+ ORDER BY created_at
699
+ ) AS running_published
700
+ FROM posts
701
+ ORDER BY created_at;`,
702
+ difficulty: 'advanced',
703
+ requiresSampleData: true,
704
+ tags: ['window', 'running total', 'cumulative'],
705
+ },
706
+ // ============================================================================
707
+ // JSON Operations
708
+ // ============================================================================
709
+ {
710
+ id: 'json-create',
711
+ name: 'Create JSON Data',
712
+ category: 'json',
713
+ description: 'Build JSON objects and arrays',
714
+ sql: `SELECT
715
+ jsonb_build_object(
716
+ 'name', 'Alice',
717
+ 'age', 30,
718
+ 'active', true
719
+ ) AS json_object,
720
+ jsonb_build_array(1, 2, 3, 'four') AS json_array,
721
+ to_jsonb(ROW('hello', 42)) AS row_to_json;`,
722
+ difficulty: 'intermediate',
723
+ tags: ['json', 'jsonb', 'create'],
724
+ },
725
+ {
726
+ id: 'json-query',
727
+ name: 'Query JSON Fields',
728
+ category: 'json',
729
+ description: 'Extract values from JSON columns',
730
+ sql: `-- Create a table with JSON
731
+ CREATE TABLE IF NOT EXISTS json_demo (
732
+ id SERIAL PRIMARY KEY,
733
+ data JSONB
734
+ );
735
+
736
+ INSERT INTO json_demo (data) VALUES
737
+ ('{"name": "Alice", "tags": ["admin", "user"], "meta": {"age": 30}}'),
738
+ ('{"name": "Bob", "tags": ["user"], "meta": {"age": 25}}')
739
+ ON CONFLICT DO NOTHING;
740
+
741
+ -- Query JSON fields
742
+ SELECT
743
+ data->>'name' AS name,
744
+ data->'meta'->>'age' AS age,
745
+ data->'tags' AS tags,
746
+ jsonb_array_length(data->'tags') AS tag_count
747
+ FROM json_demo;`,
748
+ difficulty: 'intermediate',
749
+ tags: ['json', 'jsonb', 'query', 'extract'],
750
+ },
751
+ {
752
+ id: 'json-filter',
753
+ name: 'Filter by JSON Values',
754
+ category: 'json',
755
+ description: 'Use JSON operators in WHERE clauses',
756
+ sql: `-- Filter by JSON field value
757
+ SELECT * FROM json_demo
758
+ WHERE data->>'name' = 'Alice';
759
+
760
+ -- Check if array contains value
761
+ SELECT * FROM json_demo
762
+ WHERE data->'tags' ? 'admin';
763
+
764
+ -- Check nested value
765
+ SELECT * FROM json_demo
766
+ WHERE (data->'meta'->>'age')::int > 25;`,
767
+ difficulty: 'intermediate',
768
+ tags: ['json', 'jsonb', 'filter', 'where'],
769
+ },
770
+ {
771
+ id: 'json-modify',
772
+ name: 'Modify JSON Data',
773
+ category: 'json',
774
+ description: 'Update JSON values and merge objects',
775
+ sql: `-- Update a JSON field
776
+ UPDATE json_demo
777
+ SET data = jsonb_set(data, '{meta,active}', 'true')
778
+ WHERE data->>'name' = 'Alice'
779
+ RETURNING *;
780
+
781
+ -- Merge JSON objects
782
+ SELECT
783
+ data || '{"status": "verified"}'::jsonb AS merged
784
+ FROM json_demo;`,
785
+ difficulty: 'advanced',
786
+ tags: ['json', 'jsonb', 'update', 'modify'],
787
+ },
788
+ // ============================================================================
789
+ // Text & Search
790
+ // ============================================================================
791
+ {
792
+ id: 'text-like',
793
+ name: 'LIKE Pattern Matching',
794
+ category: 'text-search',
795
+ description: 'Search with wildcards',
796
+ sql: `-- Starts with
797
+ SELECT * FROM users WHERE name LIKE 'A%';
798
+
799
+ -- Contains
800
+ SELECT * FROM users WHERE email LIKE '%example%';
801
+
802
+ -- Case-insensitive
803
+ SELECT * FROM users WHERE name ILIKE '%alice%';`,
804
+ difficulty: 'beginner',
805
+ requiresSampleData: true,
806
+ tags: ['like', 'ilike', 'pattern', 'search'],
807
+ },
808
+ {
809
+ id: 'text-regex',
810
+ name: 'Regular Expressions',
811
+ category: 'text-search',
812
+ description: 'Use regex for pattern matching',
813
+ sql: `-- Match pattern
814
+ SELECT * FROM users
815
+ WHERE email ~ '^[a-z]+@example\\.com$';
816
+
817
+ -- Case-insensitive regex
818
+ SELECT * FROM users
819
+ WHERE name ~* '^(alice|bob)';`,
820
+ difficulty: 'intermediate',
821
+ requiresSampleData: true,
822
+ tags: ['regex', 'pattern', 'search', 'regular expression'],
823
+ },
824
+ {
825
+ id: 'text-functions',
826
+ name: 'String Functions',
827
+ category: 'text-search',
828
+ description: 'Common string manipulation functions',
829
+ sql: `SELECT
830
+ name,
831
+ UPPER(name) AS upper_name,
832
+ LOWER(name) AS lower_name,
833
+ LENGTH(name) AS name_length,
834
+ SUBSTRING(name, 1, 5) AS first_five,
835
+ REPLACE(email, '@', ' [at] ') AS obfuscated_email,
836
+ TRIM(' hello ') AS trimmed,
837
+ CONCAT(name, ' <', email, '>') AS formatted
838
+ FROM users;`,
839
+ difficulty: 'beginner',
840
+ requiresSampleData: true,
841
+ tags: ['string', 'text', 'functions'],
842
+ },
843
+ {
844
+ id: 'text-fulltext',
845
+ name: 'Full-Text Search',
846
+ category: 'text-search',
847
+ description: 'PostgreSQL full-text search capabilities',
848
+ sql: `-- Simple text search
849
+ SELECT title, body
850
+ FROM posts
851
+ WHERE to_tsvector('english', title || ' ' || COALESCE(body, ''))
852
+ @@ to_tsquery('english', 'post');
853
+
854
+ -- Ranked search results
855
+ SELECT
856
+ title,
857
+ ts_rank(
858
+ to_tsvector('english', title || ' ' || COALESCE(body, '')),
859
+ to_tsquery('english', 'post')
860
+ ) AS rank
861
+ FROM posts
862
+ WHERE to_tsvector('english', title || ' ' || COALESCE(body, ''))
863
+ @@ to_tsquery('english', 'post')
864
+ ORDER BY rank DESC;`,
865
+ difficulty: 'advanced',
866
+ requiresSampleData: true,
867
+ tags: ['full-text', 'search', 'tsvector', 'tsquery'],
868
+ },
869
+ // ============================================================================
870
+ // Date & Time
871
+ // ============================================================================
872
+ {
873
+ id: 'date-current',
874
+ name: 'Current Date/Time',
875
+ category: 'date-time',
876
+ description: 'Get current date and time values',
877
+ sql: `SELECT
878
+ NOW() AS now,
879
+ CURRENT_TIMESTAMP AS current_timestamp,
880
+ CURRENT_DATE AS today,
881
+ CURRENT_TIME AS current_time,
882
+ LOCALTIME AS local_time,
883
+ LOCALTIMESTAMP AS local_timestamp;`,
884
+ difficulty: 'beginner',
885
+ tags: ['date', 'time', 'now', 'current'],
886
+ },
887
+ {
888
+ id: 'date-extract',
889
+ name: 'Extract Date Parts',
890
+ category: 'date-time',
891
+ description: 'Get year, month, day, etc. from dates',
892
+ sql: `SELECT
893
+ created_at,
894
+ EXTRACT(YEAR FROM created_at) AS year,
895
+ EXTRACT(MONTH FROM created_at) AS month,
896
+ EXTRACT(DAY FROM created_at) AS day,
897
+ EXTRACT(DOW FROM created_at) AS day_of_week,
898
+ EXTRACT(HOUR FROM created_at) AS hour
899
+ FROM users;`,
900
+ difficulty: 'beginner',
901
+ requiresSampleData: true,
902
+ tags: ['date', 'extract', 'year', 'month', 'day'],
903
+ },
904
+ {
905
+ id: 'date-interval',
906
+ name: 'Date Arithmetic',
907
+ category: 'date-time',
908
+ description: 'Add and subtract time intervals',
909
+ sql: `SELECT
910
+ NOW() AS now,
911
+ NOW() + INTERVAL '1 day' AS tomorrow,
912
+ NOW() - INTERVAL '1 week' AS last_week,
913
+ NOW() + INTERVAL '3 months' AS in_3_months,
914
+ NOW() - INTERVAL '1 year' AS last_year,
915
+ AGE(NOW(), '2020-01-01'::timestamp) AS time_since_2020;`,
916
+ difficulty: 'intermediate',
917
+ tags: ['date', 'interval', 'arithmetic', 'add', 'subtract'],
918
+ },
919
+ {
920
+ id: 'date-format',
921
+ name: 'Format Dates',
922
+ category: 'date-time',
923
+ description: 'Convert dates to formatted strings',
924
+ sql: `SELECT
925
+ created_at,
926
+ TO_CHAR(created_at, 'YYYY-MM-DD') AS iso_date,
927
+ TO_CHAR(created_at, 'Month DD, YYYY') AS full_date,
928
+ TO_CHAR(created_at, 'Day') AS day_name,
929
+ TO_CHAR(created_at, 'HH24:MI:SS') AS time_24h,
930
+ TO_CHAR(created_at, 'HH:MI AM') AS time_12h
931
+ FROM users;`,
932
+ difficulty: 'intermediate',
933
+ requiresSampleData: true,
934
+ tags: ['date', 'format', 'to_char'],
935
+ },
936
+ {
937
+ id: 'date-truncate',
938
+ name: 'Truncate Dates',
939
+ category: 'date-time',
940
+ description: 'Round dates to specific precision',
941
+ sql: `SELECT
942
+ created_at,
943
+ DATE_TRUNC('year', created_at) AS year_start,
944
+ DATE_TRUNC('month', created_at) AS month_start,
945
+ DATE_TRUNC('week', created_at) AS week_start,
946
+ DATE_TRUNC('day', created_at) AS day_start,
947
+ DATE_TRUNC('hour', created_at) AS hour_start
948
+ FROM users;`,
949
+ difficulty: 'intermediate',
950
+ requiresSampleData: true,
951
+ tags: ['date', 'truncate', 'round'],
952
+ },
953
+ // ============================================================================
954
+ // Advanced
955
+ // ============================================================================
956
+ {
957
+ id: 'adv-generate-series',
958
+ name: 'Generate Series',
959
+ category: 'advanced',
960
+ description: 'Generate sequences of numbers or dates',
961
+ sql: `-- Number sequence
962
+ SELECT generate_series(1, 10) AS num;
963
+
964
+ -- Date sequence (one row per day)
965
+ SELECT generate_series(
966
+ '2024-01-01'::date,
967
+ '2024-01-07'::date,
968
+ '1 day'::interval
969
+ )::date AS date;
970
+
971
+ -- Time slots (hourly)
972
+ SELECT generate_series(
973
+ '2024-01-01 09:00'::timestamp,
974
+ '2024-01-01 17:00'::timestamp,
975
+ '1 hour'::interval
976
+ ) AS time_slot;`,
977
+ difficulty: 'intermediate',
978
+ tags: ['generate_series', 'sequence', 'numbers', 'dates'],
979
+ },
980
+ {
981
+ id: 'adv-recursive-cte',
982
+ name: 'Recursive CTE',
983
+ category: 'advanced',
984
+ description: 'Create hierarchical or iterative queries',
985
+ sql: `-- Fibonacci sequence
986
+ WITH RECURSIVE fib(n, a, b) AS (
987
+ SELECT 1, 0::bigint, 1::bigint
988
+ UNION ALL
989
+ SELECT n + 1, b, a + b
990
+ FROM fib
991
+ WHERE n < 20
992
+ )
993
+ SELECT n, a AS fibonacci
994
+ FROM fib;
995
+
996
+ -- Number sequence (alternative to generate_series)
997
+ WITH RECURSIVE nums(n) AS (
998
+ SELECT 1
999
+ UNION ALL
1000
+ SELECT n + 1 FROM nums WHERE n < 10
1001
+ )
1002
+ SELECT * FROM nums;`,
1003
+ difficulty: 'advanced',
1004
+ tags: ['recursive', 'cte', 'hierarchy', 'iteration'],
1005
+ },
1006
+ {
1007
+ id: 'adv-lateral-join',
1008
+ name: 'LATERAL Join',
1009
+ category: 'advanced',
1010
+ description: 'Reference outer query in subquery',
1011
+ sql: `-- Get top 2 posts per user
1012
+ SELECT
1013
+ u.name,
1014
+ top_posts.title,
1015
+ top_posts.created_at
1016
+ FROM users u
1017
+ CROSS JOIN LATERAL (
1018
+ SELECT title, created_at
1019
+ FROM posts p
1020
+ WHERE p.user_id = u.id
1021
+ ORDER BY created_at DESC
1022
+ LIMIT 2
1023
+ ) AS top_posts;`,
1024
+ difficulty: 'advanced',
1025
+ requiresSampleData: true,
1026
+ tags: ['lateral', 'join', 'correlated', 'top-n'],
1027
+ },
1028
+ {
1029
+ id: 'adv-array-agg',
1030
+ name: 'Array Aggregation',
1031
+ category: 'advanced',
1032
+ description: 'Combine values into arrays',
1033
+ sql: `SELECT
1034
+ u.name,
1035
+ ARRAY_AGG(p.title ORDER BY p.created_at) AS post_titles,
1036
+ STRING_AGG(p.title, ', ' ORDER BY p.created_at) AS titles_csv
1037
+ FROM users u
1038
+ LEFT JOIN posts p ON p.user_id = u.id
1039
+ GROUP BY u.id, u.name
1040
+ ORDER BY u.name;`,
1041
+ difficulty: 'advanced',
1042
+ requiresSampleData: true,
1043
+ tags: ['array_agg', 'string_agg', 'aggregate', 'array'],
1044
+ },
1045
+ {
1046
+ id: 'adv-explain-analyze',
1047
+ name: 'EXPLAIN ANALYZE',
1048
+ category: 'advanced',
1049
+ description: 'Analyze query execution plan',
1050
+ sql: `EXPLAIN (ANALYZE, BUFFERS, FORMAT TEXT)
1051
+ SELECT u.name, COUNT(p.id) AS post_count
1052
+ FROM users u
1053
+ LEFT JOIN posts p ON p.user_id = u.id
1054
+ GROUP BY u.id, u.name
1055
+ ORDER BY post_count DESC;`,
1056
+ difficulty: 'advanced',
1057
+ requiresSampleData: true,
1058
+ tags: ['explain', 'analyze', 'performance', 'plan'],
1059
+ },
1060
+ ];
1061
+ /**
1062
+ * Get sample queries by category
1063
+ */
1064
+ export function getQueriesByCategory(category) {
1065
+ return SAMPLE_QUERIES.filter((q) => q.category === category);
1066
+ }
1067
+ /**
1068
+ * Get sample queries by difficulty
1069
+ */
1070
+ export function getQueriesByDifficulty(difficulty) {
1071
+ return SAMPLE_QUERIES.filter((q) => q.difficulty === difficulty);
1072
+ }
1073
+ /**
1074
+ * Get sample queries that don't require sample data
1075
+ */
1076
+ export function getStandaloneQueries() {
1077
+ return SAMPLE_QUERIES.filter((q) => !q.requiresSampleData);
1078
+ }
1079
+ /**
1080
+ * Search sample queries by keyword
1081
+ */
1082
+ export function searchQueries(keyword) {
1083
+ const lower = keyword.toLowerCase();
1084
+ return SAMPLE_QUERIES.filter((q) => q.name.toLowerCase().includes(lower) ||
1085
+ q.description.toLowerCase().includes(lower) ||
1086
+ q.sql.toLowerCase().includes(lower) ||
1087
+ q.tags?.some((t) => t.toLowerCase().includes(lower)));
1088
+ }
1089
+ /**
1090
+ * Get a sample query by ID
1091
+ */
1092
+ export function getQueryById(id) {
1093
+ return SAMPLE_QUERIES.find((q) => q.id === id);
1094
+ }
1095
+ //# sourceMappingURL=sample-queries.js.map