{
  "_id": "6a12ac45acfb0bcc41d1806d",
  "Package": "dm",
  "Title": "Relational Data Models",
  "Version": "1.1.2.9001",
  "Date": "2026-05-24",
  "Authors@R": "c(person(given = \"Tobias\",\nfamily = \"Schieferdecker\",\nrole = \"aut\",\nemail = \"tobias@cynkra.com\"),\nperson(given = \"Kirill\",\nfamily = \"Müller\",\nrole = c(\"aut\", \"cre\"),\nemail = \"kirill@cynkra.com\",\ncomment = c(ORCID = \"0000-0002-1416-3412\")),\nperson(given = \"Antoine\",\nfamily = \"Fabri\",\nrole = \"ctb\"),\nperson(given = \"Darko\",\nfamily = \"Bergant\",\nrole = \"aut\",\nemail = \"darko.bergant@gmail.com\"),\nperson(given = \"Katharina\",\nfamily = \"Brunner\",\nrole = \"ctb\"),\nperson(given = \"James\",\nfamily = \"Wondrasek\",\nrole = \"ctb\"),\nperson(given = \"Indrajeet\",\nfamily = \"Patil\",\ncomment = c(ORCID = \"0000-0003-1995-6531\"),\nrole = \"ctb\"),\nperson(given = \"Maëlle\",\nfamily = \"Salmon\",\ncomment = c(ORCID = \"0000-0002-2815-0399\"),\nrole = \"ctb\"),\nperson(given = \"energie360° AG\",\nrole = \"fnd\",\nemail = \"info@energie360.ch\"),\nperson(given = \"cynkra GmbH\",\nrole = c(\"fnd\", \"cph\"),\nemail = \"mail@cynkra.com\",\ncomment = c(ROR = \"0335t7e62\"))\n)",
  "Description": "Provides tools for working with multiple related tables,\nstored as data frames or in a relational database.  Multiple\ntables (data and metadata) are stored in a compound object,\nwhich can then be manipulated with a pipe-friendly syntax.",
  "License": "MIT + file LICENSE",
  "URL": "https://dm.cynkra.com/, https://github.com/cynkra/dm",
  "BugReports": "https://github.com/cynkra/dm/issues",
  "Config/Needs/website": "brio, bslib, cynkra/cynkratemplate, htmltools,\npagedown, purrr, rmarkdown, whisker, xml2",
  "Config/Needs/check": "anthonynorth/roxyglobals",
  "VignetteBuilder": "knitr",
  "Config/autostyle/scope": "line_breaks",
  "Config/autostyle/strict": "true",
  "Config/testthat/edition": "3",
  "Config/testthat/parallel": "false",
  "Config/testthat/start-first": "zzx-deprecated, flatten, dplyr, filter-dm,\ndraw-dm, bind, rows-dm, learn",
  "Encoding": "UTF-8",
  "Roxygen": "list( markdown = TRUE, roclets = c(\"collate\", \"namespace\",\n\"rd\", \"roxyglobals::global_roclet\") )",
  "Config/roxygen2/version": "8.0.0.9000",
  "Config/pak/sysreqs": "libicu-dev",
  "Repository": "https://cynkra.r-universe.dev",
  "Date/Publication": "2026-05-24 01:41:51 UTC",
  "RemoteUrl": "https://github.com/cynkra/dm",
  "RemoteRef": "HEAD",
  "RemoteSha": "9a6d1a526860b01fd2717e08f55ea07eebacde28",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-05-24 07:15:37 UTC",
    "User": "root"
  },
  "Author": "Tobias Schieferdecker [aut],\nKirill Müller [aut, cre] (ORCID:\n<https://orcid.org/0000-0002-1416-3412>),\nAntoine Fabri [ctb],\nDarko Bergant [aut],\nKatharina Brunner [ctb],\nJames Wondrasek [ctb],\nIndrajeet Patil [ctb] (ORCID: <https://orcid.org/0000-0003-1995-6531>),\nMaëlle Salmon [ctb] (ORCID: <https://orcid.org/0000-0002-2815-0399>),\nenergie360° AG [fnd],\ncynkra GmbH [fnd, cph] (ROR: <https://ror.org/0335t7e62>)",
  "Maintainer": "Kirill Müller <kirill@cynkra.com>",
  "MD5sum": "6a77459edfbefe34c8024e9e3ff8145c",
  "_user": "cynkra",
  "_type": "src",
  "_file": "dm_1.1.2.9001.tar.gz",
  "_fileid": "dd930c062cf6b2e26434bafbcce884a27459850671238a9391e52cda76a01765",
  "_filesize": 3102523,
  "_sha256": "dd930c062cf6b2e26434bafbcce884a27459850671238a9391e52cda76a01765",
  "_created": "2026-05-24T07:15:37.000Z",
  "_published": "2026-05-24T07:44:05.117Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 77579795637,
      "time": 295,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7183214165"
    },
    {
      "job": 77579795643,
      "time": 275,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7183211970"
    },
    {
      "job": 77579795662,
      "time": 166,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7183327456"
    },
    {
      "job": 77579795673,
      "time": 474,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7183365406"
    },
    {
      "job": 77579556097,
      "time": 256,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7183177959"
    },
    {
      "job": 77579795639,
      "time": 139,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7183194699"
    },
    {
      "job": 77579795655,
      "time": 212,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7183204307"
    },
    {
      "job": 77579795650,
      "time": 216,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7183204662"
    },
    {
      "job": 77579795651,
      "time": 414,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7183227663"
    }
  ],
  "_buildurl": "https://github.com/r-universe/cynkra/actions/runs/26354823479",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/cynkra/dm",
  "_commit": {
    "id": "9a6d1a526860b01fd2717e08f55ea07eebacde28",
    "author": "github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
    "committer": "GitHub <noreply@github.com>",
    "message": "fledge: Bump version to 1.1.2.9001 (#2466)\n\nCo-authored-by: krlmlr <krlmlr@users.noreply.github.com>",
    "time": 1779586911
  },
  "_maintainer": {
    "name": "Kirill Müller",
    "email": "kirill@cynkra.com",
    "login": "krlmlr",
    "orcid": "0000-0002-1416-3412",
    "description": "Away from most OSS work until September 2026.",
    "uuid": 1741643
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.0",
      "role": "Depends"
    },
    {
      "package": "backports",
      "role": "Imports"
    },
    {
      "package": "cli",
      "version": ">= 2.2.0",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "version": ">= 1.2.0",
      "role": "Imports"
    },
    {
      "package": "glue",
      "role": "Imports"
    },
    {
      "package": "lifecycle",
      "version": ">= 1.0.3",
      "role": "Imports"
    },
    {
      "package": "memoise",
      "role": "Imports"
    },
    {
      "package": "methods",
      "role": "Imports"
    },
    {
      "package": "purrr",
      "version": ">= 1.0.0",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "version": ">= 1.0.2",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "version": ">= 3.0.0",
      "role": "Imports"
    },
    {
      "package": "tidyr",
      "version": ">= 1.0.0",
      "role": "Imports"
    },
    {
      "package": "tidyselect",
      "version": ">= 1.2.0",
      "role": "Imports"
    },
    {
      "package": "vctrs",
      "version": ">= 0.3.2",
      "role": "Imports"
    },
    {
      "package": "brio",
      "role": "Suggests"
    },
    {
      "package": "colourpicker",
      "role": "Suggests"
    },
    {
      "package": "covr",
      "role": "Suggests"
    },
    {
      "package": "DBI",
      "version": ">= 1.2.0",
      "role": "Suggests"
    },
    {
      "package": "dbplyr",
      "version": ">= 2.3.4",
      "role": "Suggests"
    },
    {
      "package": "DiagrammeR",
      "role": "Suggests"
    },
    {
      "package": "DiagrammeRsvg",
      "role": "Suggests"
    },
    {
      "package": "digest",
      "role": "Suggests"
    },
    {
      "package": "duckdb",
      "version": ">= 0.4.0",
      "role": "Suggests"
    },
    {
      "package": "duckplyr",
      "role": "Suggests"
    },
    {
      "package": "fansi",
      "role": "Suggests"
    },
    {
      "package": "forcats",
      "role": "Suggests"
    },
    {
      "package": "htmltools",
      "role": "Suggests"
    },
    {
      "package": "htmlwidgets",
      "role": "Suggests"
    },
    {
      "package": "igraph",
      "version": ">= 2.2.0",
      "role": "Suggests"
    },
    {
      "package": "jsonlite",
      "role": "Suggests"
    },
    {
      "package": "keyring",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "labelled",
      "version": ">= 2.12.0",
      "role": "Suggests"
    },
    {
      "package": "magrittr",
      "role": "Suggests"
    },
    {
      "package": "nycflights13",
      "role": "Suggests"
    },
    {
      "package": "odbc",
      "version": ">= 1.4.2",
      "role": "Suggests"
    },
    {
      "package": "pillar",
      "role": "Suggests"
    },
    {
      "package": "pixarfilms",
      "role": "Suggests"
    },
    {
      "package": "pool",
      "role": "Suggests"
    },
    {
      "package": "progress",
      "role": "Suggests"
    },
    {
      "package": "reactable",
      "role": "Suggests"
    },
    {
      "package": "RMariaDB",
      "version": ">= 1.3.3",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "RPostgres",
      "role": "Suggests"
    },
    {
      "package": "RSQLite",
      "version": ">= 2.2.8",
      "role": "Suggests"
    },
    {
      "package": "rstudioapi",
      "role": "Suggests"
    },
    {
      "package": "shiny",
      "role": "Suggests"
    },
    {
      "package": "shinyAce",
      "role": "Suggests"
    },
    {
      "package": "shinydashboard",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.2.0",
      "role": "Suggests"
    },
    {
      "package": "tidyverse",
      "role": "Suggests"
    },
    {
      "package": "waldo",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    }
  ],
  "_owner": "cynkra",
  "_selfowned": true,
  "_usedby": 8,
  "_updates": [
    {
      "week": "2025-22",
      "n": 3
    },
    {
      "week": "2025-24",
      "n": 6
    },
    {
      "week": "2025-27",
      "n": 14
    },
    {
      "week": "2025-31",
      "n": 18
    },
    {
      "week": "2025-32",
      "n": 2
    },
    {
      "week": "2025-36",
      "n": 4
    },
    {
      "week": "2025-42",
      "n": 2
    },
    {
      "week": "2025-44",
      "n": 6
    },
    {
      "week": "2025-45",
      "n": 3
    },
    {
      "week": "2025-46",
      "n": 4
    },
    {
      "week": "2025-47",
      "n": 1
    },
    {
      "week": "2026-01",
      "n": 2
    },
    {
      "week": "2026-02",
      "n": 3
    },
    {
      "week": "2026-03",
      "n": 2
    },
    {
      "week": "2026-08",
      "n": 29
    },
    {
      "week": "2026-09",
      "n": 18
    },
    {
      "week": "2026-10",
      "n": 10
    },
    {
      "week": "2026-11",
      "n": 2
    },
    {
      "week": "2026-12",
      "n": 2
    },
    {
      "week": "2026-15",
      "n": 2
    },
    {
      "week": "2026-19",
      "n": 8
    },
    {
      "week": "2026-20",
      "n": 11
    },
    {
      "week": "2026-21",
      "n": 3
    }
  ],
  "_tags": [
    {
      "name": "v1.0.11.9016",
      "date": "2025-05-27"
    },
    {
      "name": "v1.0.11.9017",
      "date": "2025-06-10"
    },
    {
      "name": "v1.0.11.9018",
      "date": "2025-06-11"
    },
    {
      "name": "v1.0.11.9019",
      "date": "2025-07-01"
    },
    {
      "name": "v1.0.11.9900",
      "date": "2025-07-01"
    },
    {
      "name": "v1.0.11.9901",
      "date": "2025-07-02"
    },
    {
      "name": "v1.0.11.9902",
      "date": "2025-07-02"
    },
    {
      "name": "v1.0.12",
      "date": "2025-07-02"
    },
    {
      "name": "v1.0.12.9000",
      "date": "2025-07-03"
    },
    {
      "name": "v1.0.12.9001",
      "date": "2025-08-01"
    },
    {
      "name": "v1.0.12.9002",
      "date": "2025-08-02"
    },
    {
      "name": "v1.0.12.9003",
      "date": "2025-08-05"
    },
    {
      "name": "v1.0.12.9004",
      "date": "2025-09-05"
    },
    {
      "name": "v1.0.12.9005",
      "date": "2025-09-06"
    },
    {
      "name": "v1.0.12.9006",
      "date": "2025-10-17"
    },
    {
      "name": "v1.0.12.9007",
      "date": "2025-10-29"
    },
    {
      "name": "v1.0.12.9008",
      "date": "2025-11-08"
    },
    {
      "name": "v1.0.12.9009",
      "date": "2025-11-10"
    },
    {
      "name": "v1.0.12.9010",
      "date": "2025-11-12"
    },
    {
      "name": "v1.0.12.9011",
      "date": "2025-11-17"
    },
    {
      "name": "v1.0.12.9012",
      "date": "2026-01-03"
    },
    {
      "name": "v1.0.12.9013",
      "date": "2026-01-06"
    },
    {
      "name": "v1.0.12.9014",
      "date": "2026-01-14"
    },
    {
      "name": "v1.0.12.9015",
      "date": "2026-02-21"
    },
    {
      "name": "v1.0.12.9016",
      "date": "2026-02-22"
    },
    {
      "name": "v1.0.12.9017",
      "date": "2026-02-23"
    },
    {
      "name": "v1.0.12.9018",
      "date": "2026-02-24"
    },
    {
      "name": "v1.0.12.9019",
      "date": "2026-02-24"
    },
    {
      "name": "v1.0.99.9901",
      "date": "2026-02-24"
    },
    {
      "name": "v1.1.0",
      "date": "2026-02-24"
    },
    {
      "name": "v1.0.99.9902",
      "date": "2026-02-25"
    },
    {
      "name": "v1.1.0.9000",
      "date": "2026-02-26"
    },
    {
      "name": "v1.1.0.9001",
      "date": "2026-03-04"
    },
    {
      "name": "v1.1.1",
      "date": "2026-03-05"
    },
    {
      "name": "v1.1.1.9000",
      "date": "2026-03-06"
    },
    {
      "name": "v1.1.1.9001",
      "date": "2026-03-07"
    },
    {
      "name": "v1.1.1.9002",
      "date": "2026-03-08"
    },
    {
      "name": "v1.1.1.9003",
      "date": "2026-03-13"
    },
    {
      "name": "v1.1.1.9004",
      "date": "2026-03-19"
    },
    {
      "name": "v1.1.1.9005",
      "date": "2026-04-12"
    },
    {
      "name": "v1.1.1.9006",
      "date": "2026-05-17"
    },
    {
      "name": "v1.1.2",
      "date": "2026-05-17"
    },
    {
      "name": "v1.1.2.9000",
      "date": "2026-05-18"
    },
    {
      "name": "v1.1.2.9001",
      "date": "2026-05-24"
    }
  ],
  "_topics": [
    "data-model",
    "data-warehousing",
    "datawarehousing",
    "dbi",
    "dbplyr",
    "relational-databases"
  ],
  "_stars": 526,
  "_contributors": [
    {
      "user": "krlmlr",
      "count": 4604,
      "uuid": 1741643
    },
    {
      "user": "tschiefer",
      "count": 2702,
      "uuid": 11596155
    },
    {
      "user": "moodymudskipper",
      "count": 299,
      "uuid": 18351714
    },
    {
      "user": "indrajeetpatil",
      "count": 164,
      "uuid": 11330453
    },
    {
      "user": "maelle",
      "count": 90,
      "uuid": 8360597
    },
    {
      "user": "cutterkom",
      "count": 66,
      "uuid": 4574033
    },
    {
      "user": "samssann",
      "count": 49,
      "uuid": 19807339
    },
    {
      "user": "jawond",
      "count": 48,
      "uuid": 61393184
    },
    {
      "user": "pat-s",
      "count": 45,
      "uuid": 8430564
    },
    {
      "user": "owenjonesuob",
      "count": 33,
      "uuid": 21007837
    },
    {
      "user": "copilot",
      "count": 19,
      "uuid": 198982749
    },
    {
      "user": "olivroy",
      "count": 13,
      "uuid": 52606734
    },
    {
      "user": "erictleung",
      "count": 8,
      "uuid": 2754821
    },
    {
      "user": "jangorecki",
      "count": 8,
      "uuid": 3627377
    },
    {
      "user": "egnha",
      "count": 8,
      "uuid": 12226767
    },
    {
      "user": "web-flow",
      "count": 6,
      "uuid": 19864447
    },
    {
      "user": "bbecane",
      "count": 6,
      "uuid": 57274592
    },
    {
      "user": "salim-b",
      "count": 5,
      "uuid": 20040931
    },
    {
      "user": "andreranza",
      "count": 4,
      "uuid": 43607279
    },
    {
      "user": "pawelru",
      "count": 3,
      "uuid": 12943682
    },
    {
      "user": "davisvaughan",
      "count": 3,
      "uuid": 19150088
    },
    {
      "user": "gadenbuie",
      "count": 3,
      "uuid": 5420529
    },
    {
      "user": "homocodens",
      "count": 3,
      "uuid": 32675029
    },
    {
      "user": "petermeissner",
      "count": 2,
      "uuid": 939139
    },
    {
      "user": "eutwt",
      "count": 2,
      "uuid": 11261404
    },
    {
      "user": "ratnanil",
      "count": 2,
      "uuid": 12532091
    },
    {
      "user": "mikejohnpage",
      "count": 2,
      "uuid": 38110953
    },
    {
      "user": "brancengregory",
      "count": 2,
      "uuid": 13408602
    },
    {
      "user": "antonov548",
      "count": 1,
      "uuid": 22891541
    },
    {
      "user": "guspan-tanadi",
      "count": 1,
      "uuid": 36249910
    },
    {
      "user": "hadley",
      "count": 1,
      "uuid": 4196
    },
    {
      "user": "jonmcalder",
      "count": 1,
      "uuid": 5055818
    },
    {
      "user": "mgirlich",
      "count": 1,
      "uuid": 18258854
    },
    {
      "user": "wael-sadek",
      "count": 1,
      "uuid": 42678896
    },
    {
      "user": "feinmann",
      "count": 1,
      "uuid": 2109648
    },
    {
      "user": "talpitoo",
      "count": 1,
      "uuid": 3680278
    }
  ],
  "_userbio": {
    "uuid": 38209788,
    "type": "organization",
    "name": "cynkra",
    "description": "We support your business and the people behind it by helping you pick the right tools, implementing and supporting solutions, training and code review."
  },
  "_downloads": {
    "count": 5598,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/dm"
  },
  "_mentions": 9,
  "_devurl": "https://github.com/cynkra/dm",
  "_pkgdown": "https://dm.cynkra.com/",
  "_searchresults": 484,
  "_metadata": {
    "category": "Database",
    "cynkra_team_members": [
      "kirill",
      "tobias"
    ]
  },
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/dm.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/cynkra/dm",
  "_realowner": "cynkra",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.1",
      "date": "2020-03-12"
    },
    {
      "version": "0.1.2",
      "date": "2020-05-04"
    },
    {
      "version": "0.1.3",
      "date": "2020-05-25"
    },
    {
      "version": "0.1.4",
      "date": "2020-06-07"
    },
    {
      "version": "0.1.5",
      "date": "2020-07-03"
    },
    {
      "version": "0.1.6",
      "date": "2020-07-30"
    },
    {
      "version": "0.1.7",
      "date": "2020-09-02"
    },
    {
      "version": "0.1.9",
      "date": "2020-11-18"
    },
    {
      "version": "0.1.10",
      "date": "2021-01-07"
    },
    {
      "version": "0.1.12",
      "date": "2021-02-15"
    },
    {
      "version": "0.1.13",
      "date": "2021-04-25"
    },
    {
      "version": "0.2.0",
      "date": "2021-05-03"
    },
    {
      "version": "0.2.1",
      "date": "2021-05-11"
    },
    {
      "version": "0.2.2",
      "date": "2021-06-13"
    },
    {
      "version": "0.2.3",
      "date": "2021-06-20"
    },
    {
      "version": "0.2.4",
      "date": "2021-09-30"
    },
    {
      "version": "0.2.5",
      "date": "2021-10-15"
    },
    {
      "version": "0.2.6",
      "date": "2021-11-21"
    },
    {
      "version": "0.2.7",
      "date": "2022-02-03"
    },
    {
      "version": "0.2.8",
      "date": "2022-04-08"
    },
    {
      "version": "0.3.0",
      "date": "2022-07-06"
    },
    {
      "version": "1.0.0",
      "date": "2022-07-21"
    },
    {
      "version": "1.0.1",
      "date": "2022-08-06"
    },
    {
      "version": "1.0.2",
      "date": "2022-09-20"
    },
    {
      "version": "1.0.3",
      "date": "2022-10-12"
    },
    {
      "version": "1.0.4",
      "date": "2023-02-11"
    },
    {
      "version": "1.0.5",
      "date": "2023-03-16"
    },
    {
      "version": "1.0.6",
      "date": "2023-07-21"
    },
    {
      "version": "1.0.7",
      "date": "2023-10-24"
    },
    {
      "version": "1.0.8",
      "date": "2023-11-02"
    },
    {
      "version": "1.0.9",
      "date": "2024-01-08"
    },
    {
      "version": "1.0.10",
      "date": "2024-01-21"
    },
    {
      "version": "1.0.11",
      "date": "2024-11-25"
    },
    {
      "version": "1.0.12",
      "date": "2025-07-02"
    },
    {
      "version": "1.1.0",
      "date": "2026-02-25"
    },
    {
      "version": "1.1.1",
      "date": "2026-03-05"
    },
    {
      "version": "1.1.2",
      "date": "2026-05-17"
    }
  ],
  "_exports": [
    "%>%",
    "anti_join",
    "arrange",
    "as_dm",
    "cdm_add_fk",
    "cdm_add_pk",
    "cdm_add_tbl",
    "cdm_apply_filters",
    "cdm_apply_filters_to_tbl",
    "cdm_check_constraints",
    "cdm_copy_to",
    "cdm_disambiguate_cols",
    "cdm_draw",
    "cdm_enum_fk_candidates",
    "cdm_enum_pk_candidates",
    "cdm_filter",
    "cdm_flatten_to_tbl",
    "cdm_get_all_fks",
    "cdm_get_all_pks",
    "cdm_get_available_colors",
    "cdm_get_colors",
    "cdm_get_con",
    "cdm_get_filter",
    "cdm_get_fk",
    "cdm_get_pk",
    "cdm_get_referencing_tables",
    "cdm_get_src",
    "cdm_get_tables",
    "cdm_has_fk",
    "cdm_has_pk",
    "cdm_insert_zoomed_tbl",
    "cdm_is_referenced",
    "cdm_join_to_tbl",
    "cdm_learn_from_db",
    "cdm_nrow",
    "cdm_nycflights13",
    "cdm_paste",
    "cdm_rename",
    "cdm_rename_tbl",
    "cdm_rm_fk",
    "cdm_rm_pk",
    "cdm_rm_tbl",
    "cdm_select",
    "cdm_select_tbl",
    "cdm_set_colors",
    "cdm_squash_to_tbl",
    "cdm_update_zoomed_tbl",
    "cdm_zoom_out",
    "cdm_zoom_to_tbl",
    "check_cardinality",
    "check_cardinality_0_1",
    "check_cardinality_0_n",
    "check_cardinality_1_1",
    "check_cardinality_1_n",
    "check_if_subset",
    "check_key",
    "check_set_equality",
    "check_subset",
    "collect",
    "compute",
    "copy_dm_to",
    "copy_to",
    "db_schema_create",
    "db_schema_drop",
    "db_schema_exists",
    "db_schema_list",
    "decompose_table",
    "dm",
    "dm_add_fk",
    "dm_add_pk",
    "dm_add_tbl",
    "dm_add_uk",
    "dm_apply_filters",
    "dm_apply_filters_to_tbl",
    "dm_bind",
    "dm_ddl_post",
    "dm_ddl_pre",
    "dm_deconstruct",
    "dm_disambiguate_cols",
    "dm_discard_zoomed",
    "dm_dml_load",
    "dm_draw",
    "dm_enum_fk_candidates",
    "dm_enum_pk_candidates",
    "dm_examine_cardinalities",
    "dm_examine_constraints",
    "dm_filter",
    "dm_financial",
    "dm_financial_sqlite",
    "dm_flatten",
    "dm_flatten_to_tbl",
    "dm_from_con",
    "dm_from_src",
    "dm_get_all_fks",
    "dm_get_all_pks",
    "dm_get_all_uks",
    "dm_get_available_colors",
    "dm_get_colors",
    "dm_get_con",
    "dm_get_filters",
    "dm_get_fk",
    "dm_get_pk",
    "dm_get_referencing_tables",
    "dm_get_src",
    "dm_get_table_description",
    "dm_get_tables",
    "dm_gui",
    "dm_has_fk",
    "dm_has_pk",
    "dm_insert_zoomed",
    "dm_is_referenced",
    "dm_join_to_tbl",
    "dm_mutate_tbl",
    "dm_nest_tbl",
    "dm_nrow",
    "dm_nycflights13",
    "dm_pack_tbl",
    "dm_paste",
    "dm_pixarfilms",
    "dm_ptype",
    "dm_rename",
    "dm_rename_tbl",
    "dm_reset_table_description",
    "dm_rm_fk",
    "dm_rm_pk",
    "dm_rm_tbl",
    "dm_rm_uk",
    "dm_rows_append",
    "dm_rows_delete",
    "dm_rows_insert",
    "dm_rows_patch",
    "dm_rows_truncate",
    "dm_rows_update",
    "dm_rows_upsert",
    "dm_select",
    "dm_select_tbl",
    "dm_set_colors",
    "dm_set_table_description",
    "dm_sql",
    "dm_squash_to_tbl",
    "dm_unnest_tbl",
    "dm_unpack_tbl",
    "dm_unwrap_tbl",
    "dm_update_zoomed",
    "dm_validate",
    "dm_wrap_tbl",
    "dm_zoom_to",
    "enum_fk_candidates",
    "enum_pk_candidates",
    "examine_cardinality",
    "filter",
    "full_join",
    "glimpse",
    "group_by",
    "inner_join",
    "is_dm",
    "json_nest",
    "json_nest_join",
    "json_pack",
    "json_pack_join",
    "json_unnest",
    "json_unpack",
    "left_join",
    "mutate",
    "new_dm",
    "pack_join",
    "pull_tbl",
    "rename",
    "reunite_parent_child",
    "reunite_parent_child_from_list",
    "right_join",
    "rows_append",
    "rows_delete",
    "rows_insert",
    "rows_patch",
    "rows_truncate",
    "rows_update",
    "rows_upsert",
    "select",
    "semi_join",
    "separate",
    "sql_rows_truncate",
    "sql_schema_create",
    "sql_schema_drop",
    "sql_schema_exists",
    "sql_schema_list",
    "src_tbls",
    "summarise",
    "summarize",
    "tbl",
    "tibble",
    "transmute",
    "ungroup",
    "unite",
    "validate_dm"
  ],
  "_help": [
    {
      "page": "check_key",
      "title": "Check if column(s) can be used as keys",
      "topics": [
        "check_key"
      ]
    },
    {
      "page": "check_set_equality",
      "title": "Check column values for set equality",
      "topics": [
        "check_set_equality"
      ]
    },
    {
      "page": "check_subset",
      "title": "Check column values for subset",
      "topics": [
        "check_subset"
      ]
    },
    {
      "page": "copy_dm_to",
      "title": "Copy data model to data source",
      "concept": [
        "DB interaction functions"
      ],
      "topics": [
        "copy_dm_to"
      ]
    },
    {
      "page": "db_schema_create",
      "title": "Create a schema on a database",
      "concept": [
        "schema handling functions"
      ],
      "topics": [
        "db_schema_create"
      ]
    },
    {
      "page": "db_schema_drop",
      "title": "Remove a schema from a database",
      "concept": [
        "schema handling functions"
      ],
      "topics": [
        "db_schema_drop"
      ]
    },
    {
      "page": "db_schema_exists",
      "title": "Check for existence of a schema on a database",
      "concept": [
        "schema handling functions"
      ],
      "topics": [
        "db_schema_exists"
      ]
    },
    {
      "page": "db_schema_list",
      "title": "List schemas on a database",
      "concept": [
        "schema handling functions"
      ],
      "topics": [
        "db_schema_list"
      ]
    },
    {
      "page": "decompose_table",
      "title": "Decompose a table into two linked tables",
      "concept": [
        "table surgery functions"
      ],
      "topics": [
        "decompose_table"
      ]
    },
    {
      "page": "dm",
      "title": "Data model class",
      "topics": [
        "as_dm",
        "dm",
        "is_dm",
        "new_dm"
      ]
    },
    {
      "page": "dm_add_fk",
      "title": "Add foreign keys",
      "concept": [
        "foreign key functions"
      ],
      "topics": [
        "dm_add_fk"
      ]
    },
    {
      "page": "dm_add_pk",
      "title": "Add a primary key",
      "concept": [
        "primary key functions"
      ],
      "topics": [
        "dm_add_pk"
      ]
    },
    {
      "page": "dm_add_uk",
      "title": "Add a unique key",
      "concept": [
        "primary key functions"
      ],
      "topics": [
        "dm_add_uk"
      ]
    },
    {
      "page": "dm_deconstruct",
      "title": "Create code to deconstruct a dm object",
      "topics": [
        "dm_deconstruct"
      ]
    },
    {
      "page": "dm_disambiguate_cols",
      "title": "Resolve column name ambiguities",
      "topics": [
        "dm_disambiguate_cols"
      ]
    },
    {
      "page": "dm_draw",
      "title": "Draw a diagram of the data model",
      "topics": [
        "dm_draw"
      ]
    },
    {
      "page": "dm_enum_fk_candidates",
      "title": "Foreign key candidates",
      "concept": [
        "foreign key functions"
      ],
      "topics": [
        "dm_enum_fk_candidates",
        "enum_fk_candidates"
      ]
    },
    {
      "page": "dm_examine_cardinalities",
      "title": "Learn about your data model",
      "concept": [
        "cardinality functions"
      ],
      "topics": [
        "dm_examine_cardinalities"
      ]
    },
    {
      "page": "dm_examine_constraints",
      "title": "Validate your data model",
      "topics": [
        "dm_examine_constraints"
      ]
    },
    {
      "page": "dm_filter",
      "title": "Filtering",
      "topics": [
        "dm_filter"
      ]
    },
    {
      "page": "dm_financial",
      "title": "Creates a dm object for the Financial data",
      "topics": [
        "dm_financial",
        "dm_financial_sqlite"
      ]
    },
    {
      "page": "dm_flatten",
      "title": "Flatten a table in a 'dm' by joining its parent tables",
      "concept": [
        "flattening functions"
      ],
      "topics": [
        "dm_flatten"
      ]
    },
    {
      "page": "dm_flatten_to_tbl",
      "title": "Flatten a part of a 'dm' into a wide table",
      "concept": [
        "flattening functions"
      ],
      "topics": [
        "dm_flatten_to_tbl"
      ]
    },
    {
      "page": "dm_from_con",
      "title": "Load a dm from a remote data source",
      "topics": [
        "dm_from_con"
      ]
    },
    {
      "page": "dm_get_all_fks",
      "title": "Get foreign key constraints",
      "concept": [
        "foreign key functions"
      ],
      "topics": [
        "dm_get_all_fks"
      ]
    },
    {
      "page": "dm_get_all_pks",
      "title": "Get all primary keys of a 'dm' object",
      "concept": [
        "primary key functions"
      ],
      "topics": [
        "dm_get_all_pks"
      ]
    },
    {
      "page": "dm_get_all_uks",
      "title": "Get all unique keys of a 'dm' object",
      "concept": [
        "primary key functions"
      ],
      "topics": [
        "dm_get_all_uks"
      ]
    },
    {
      "page": "dm_get_con",
      "title": "Get connection",
      "topics": [
        "dm_get_con"
      ]
    },
    {
      "page": "dm_get_tables",
      "title": "Get tables",
      "topics": [
        "dm_get_tables"
      ]
    },
    {
      "page": "dm_gui",
      "title": "Shiny app for defining dm objects",
      "topics": [
        "dm_gui"
      ]
    },
    {
      "page": "dm_has_pk",
      "title": "Check for primary key",
      "concept": [
        "primary key functions"
      ],
      "topics": [
        "dm_has_pk"
      ]
    },
    {
      "page": "dm_mutate_tbl",
      "title": "Update tables in a 'dm'",
      "topics": [
        "dm_mutate_tbl"
      ]
    },
    {
      "page": "dm_nest_tbl",
      "title": "Nest a table inside its dm",
      "topics": [
        "dm_nest_tbl"
      ]
    },
    {
      "page": "dm_nrow",
      "title": "Number of rows",
      "topics": [
        "dm_nrow"
      ]
    },
    {
      "page": "dm_nycflights13",
      "title": "Creates a dm object for the 'nycflights13' data",
      "topics": [
        "dm_nycflights13"
      ]
    },
    {
      "page": "dm_pack_tbl",
      "title": "dm_pack_tbl()",
      "topics": [
        "dm_pack_tbl"
      ]
    },
    {
      "page": "dm_paste",
      "title": "Create R code for a dm object",
      "topics": [
        "dm_paste"
      ]
    },
    {
      "page": "dm_pixarfilms",
      "title": "Creates a dm object for the 'pixarfilms' data",
      "topics": [
        "dm_pixarfilms"
      ]
    },
    {
      "page": "dm_ptype",
      "title": "Prototype for a dm object",
      "topics": [
        "dm_ptype"
      ]
    },
    {
      "page": "dm_rename",
      "title": "Rename columns",
      "topics": [
        "dm_rename"
      ]
    },
    {
      "page": "dm_rm_fk",
      "title": "Remove foreign keys",
      "concept": [
        "foreign key functions"
      ],
      "topics": [
        "dm_rm_fk"
      ]
    },
    {
      "page": "dm_rm_pk",
      "title": "Remove a primary key",
      "concept": [
        "primary key functions"
      ],
      "topics": [
        "dm_rm_pk"
      ]
    },
    {
      "page": "dm_rm_uk",
      "title": "Remove a unique key",
      "concept": [
        "primary key functions"
      ],
      "topics": [
        "dm_rm_uk"
      ]
    },
    {
      "page": "dm_select",
      "title": "Select columns",
      "topics": [
        "dm_select"
      ]
    },
    {
      "page": "dm_select_tbl",
      "title": "Select and rename tables",
      "topics": [
        "dm_rename_tbl",
        "dm_select_tbl"
      ]
    },
    {
      "page": "dm_set_colors",
      "title": "Color in database diagrams",
      "topics": [
        "dm_get_available_colors",
        "dm_get_colors",
        "dm_set_colors"
      ]
    },
    {
      "page": "dm_set_table_description",
      "title": "Add info about a dm's tables",
      "topics": [
        "dm_get_table_description",
        "dm_reset_table_description",
        "dm_set_table_description"
      ]
    },
    {
      "page": "dm_sql",
      "title": "Create _DDL_ and _DML_ scripts for a 'dm' a and database connection",
      "topics": [
        "dm_ddl_post",
        "dm_ddl_pre",
        "dm_dml_load",
        "dm_sql"
      ]
    },
    {
      "page": "dm_unnest_tbl",
      "title": "Unnest columns from a wrapped table",
      "topics": [
        "dm_unnest_tbl"
      ]
    },
    {
      "page": "dm_unpack_tbl",
      "title": "Unpack columns from a wrapped table",
      "topics": [
        "dm_unpack_tbl"
      ]
    },
    {
      "page": "dm_unwrap_tbl",
      "title": "Unwrap a single table dm",
      "topics": [
        "dm_unwrap_tbl"
      ]
    },
    {
      "page": "dm_validate",
      "title": "Validator",
      "topics": [
        "dm_validate"
      ]
    },
    {
      "page": "dm_wrap_tbl",
      "title": "Wrap dm into a single tibble dm",
      "topics": [
        "dm_wrap_tbl"
      ]
    },
    {
      "page": "dm_zoom_to",
      "title": "Mark table for manipulation",
      "topics": [
        "dm_discard_zoomed",
        "dm_insert_zoomed",
        "dm_update_zoomed",
        "dm_zoomed_df",
        "dm_zoom_to",
        "zoomed_df"
      ]
    },
    {
      "page": "dplyr_join",
      "title": "'dplyr' join methods for zoomed dm objects",
      "topics": [
        "anti_join.dm_keyed_tbl",
        "anti_join.dm_zoomed",
        "cross_join.dm_keyed_tbl",
        "cross_join.dm_zoomed",
        "dplyr_join",
        "full_join.dm_keyed_tbl",
        "full_join.dm_zoomed",
        "inner_join.dm_keyed_tbl",
        "inner_join.dm_zoomed",
        "left_join.dm_keyed_tbl",
        "left_join.dm_zoomed",
        "nest_join.dm_zoomed",
        "right_join.dm_keyed_tbl",
        "right_join.dm_zoomed",
        "semi_join.dm_keyed_tbl",
        "semi_join.dm_zoomed"
      ]
    },
    {
      "page": "dplyr_table_manipulation",
      "title": "'dplyr' table manipulation methods for zoomed dm objects",
      "topics": [
        "arrange.dm_keyed_tbl",
        "arrange.dm_zoomed",
        "compute.dm_zoomed",
        "count.dm_keyed_tbl",
        "count.dm_zoomed",
        "distinct.dm_keyed_tbl",
        "distinct.dm_zoomed",
        "dplyr_table_manipulation",
        "filter.dm_keyed_tbl",
        "filter.dm_zoomed",
        "filter_out.dm_keyed_tbl",
        "filter_out.dm_zoomed",
        "group_by.dm_keyed_tbl",
        "group_by.dm_zoomed",
        "mutate.dm_keyed_tbl",
        "mutate.dm_zoomed",
        "pull.dm_zoomed",
        "reframe.dm_keyed_tbl",
        "reframe.dm_zoomed",
        "relocate.dm_keyed_tbl",
        "relocate.dm_zoomed",
        "rename.dm_keyed_tbl",
        "rename.dm_zoomed",
        "select.dm_keyed_tbl",
        "select.dm_zoomed",
        "slice.dm_keyed_tbl",
        "slice.dm_zoomed",
        "summarise.dm_keyed_tbl",
        "summarise.dm_zoomed",
        "tally.dm_keyed_tbl",
        "tally.dm_zoomed",
        "transmute.dm_keyed_tbl",
        "transmute.dm_zoomed",
        "ungroup.dm_keyed_tbl",
        "ungroup.dm_zoomed"
      ]
    },
    {
      "page": "dm_enum_pk_candidates",
      "title": "Primary key candidate",
      "concept": [
        "primary key functions"
      ],
      "topics": [
        "dm_enum_pk_candidates",
        "enum_pk_candidates"
      ]
    },
    {
      "page": "examine_cardinality",
      "title": "Check table relations",
      "concept": [
        "cardinality functions"
      ],
      "topics": [
        "check_cardinality_...",
        "check_cardinality_0_1",
        "check_cardinality_0_n",
        "check_cardinality_1_1",
        "check_cardinality_1_n",
        "examine_cardinality"
      ]
    },
    {
      "page": "glimpse.dm",
      "title": "Get a glimpse of your 'dm' object",
      "topics": [
        "glimpse.dm",
        "glimpse.dm_zoomed"
      ]
    },
    {
      "page": "utils_table_manipulation",
      "title": "'utils' table manipulation methods for 'dm_zoomed' objects",
      "topics": [
        "head.dm_zoomed",
        "tail.dm_zoomed"
      ]
    },
    {
      "page": "json_nest",
      "title": "JSON nest",
      "topics": [
        "json_nest"
      ]
    },
    {
      "page": "json_nest_join",
      "title": "JSON nest join",
      "topics": [
        "json_nest_join"
      ]
    },
    {
      "page": "json_pack",
      "title": "JSON pack",
      "topics": [
        "json_pack"
      ]
    },
    {
      "page": "json_pack_join",
      "title": "JSON pack join",
      "topics": [
        "json_pack_join"
      ]
    },
    {
      "page": "json_unnest",
      "title": "Unnest a JSON column",
      "topics": [
        "json_unnest"
      ]
    },
    {
      "page": "json_unpack",
      "title": "Unpack a JSON column",
      "topics": [
        "json_unpack"
      ]
    },
    {
      "page": "materialize",
      "title": "Materialize",
      "topics": [
        "collect.dm",
        "compute.dm",
        "materialize"
      ]
    },
    {
      "page": "pack_join",
      "title": "Pack Join",
      "topics": [
        "pack_join",
        "pack_join.dm_zoomed"
      ]
    },
    {
      "page": "pull_tbl",
      "title": "Retrieve a table",
      "topics": [
        "pull_tbl"
      ]
    },
    {
      "page": "reunite_parent_child",
      "title": "Merge two tables that are linked by a foreign key relation",
      "concept": [
        "table surgery functions"
      ],
      "topics": [
        "reunite_parent_child",
        "reunite_parent_child_from_list"
      ]
    },
    {
      "page": "rows-dm",
      "title": "Modifying rows for multiple tables",
      "topics": [
        "dm_rows_...",
        "dm_rows_append",
        "dm_rows_delete",
        "dm_rows_insert",
        "dm_rows_patch",
        "dm_rows_update",
        "dm_rows_upsert",
        "rows-dm"
      ]
    },
    {
      "page": "tidyr_table_manipulation",
      "title": "'tidyr' table manipulation methods for zoomed dm objects",
      "topics": [
        "separate.dm_keyed_tbl",
        "separate.dm_zoomed",
        "tidyr_table_manipulation",
        "unite.dm_keyed_tbl",
        "unite.dm_zoomed"
      ]
    }
  ],
  "_pkglogo": "https://github.com/cynkra/dm/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/cynkra/dm/raw/HEAD/README.md",
  "_rundeps": [
    "backports",
    "cachem",
    "cli",
    "cpp11",
    "dplyr",
    "fastmap",
    "generics",
    "glue",
    "lifecycle",
    "magrittr",
    "memoise",
    "pillar",
    "pkgconfig",
    "purrr",
    "R6",
    "rlang",
    "stringi",
    "stringr",
    "tibble",
    "tidyr",
    "tidyselect",
    "utf8",
    "vctrs",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "dm.Rmd",
      "filename": "dm.html",
      "title": "Getting started with dm",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Creating a dm object",
        "Selecting tables",
        "Linking tables by adding keys",
        "Visualizing a data model",
        "Accessing a data model as a table",
        "Operations on table data within a dm",
        "Checking constraints",
        "Next Steps",
        "Standing on the shoulders of giants"
      ],
      "created": "2019-04-17 16:01:02",
      "modified": "2026-02-24 22:11:14",
      "commits": 66
    },
    {
      "source": "howto-dm-copy.Rmd",
      "filename": "howto-dm-copy.html",
      "title": "Copy tables to and from a database",
      "author": "James Wondrasek, Kirill Müller",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Copy models or copy tables?",
        "Copying and persisting individual tables",
        "Adding local data frames to an RDBMS",
        "Persisting a relational model with copy_dm_to()",
        "Conclusion",
        "Further Reading"
      ],
      "created": "2020-11-17 07:35:02",
      "modified": "2026-02-24 22:11:14",
      "commits": 15
    },
    {
      "source": "howto-dm-db.Rmd",
      "filename": "howto-dm-db.html",
      "title": "Create a dm object from a database",
      "author": "James Wondrasek, Kirill Müller",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Building a dm from a subset of tables",
        "Defining Primary and Foreign Keys",
        "Serializing a dm object",
        "Transient nature of operations",
        "Performing operations on tables by \"zooming\"",
        "Downloading data",
        "Persisting results",
        "Conclusion",
        "Further reading"
      ],
      "created": "2020-05-24 10:07:37",
      "modified": "2026-02-24 22:11:14",
      "commits": 21
    },
    {
      "source": "howto-dm-df.Rmd",
      "filename": "howto-dm-df.html",
      "title": "Create a dm object from data frames",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Creating a dm object from data frames",
        "Adding Tables",
        "A dm is a list",
        "Defining Keys",
        "Primary Keys",
        "Foreign Keys",
        "Visualization",
        "Integrity Checks",
        "Programming",
        "Conclusion",
        "Further reading"
      ],
      "created": "2020-05-24 10:07:37",
      "modified": "2022-06-24 01:11:32",
      "commits": 11
    },
    {
      "source": "howto-dm-rows.Rmd",
      "filename": "howto-dm-rows.html",
      "title": "Insert, update, or remove rows in a database",
      "author": "James Wondrasek",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The dm_rows_* process",
        "Usage",
        "dm_rows_insert()",
        "dm_rows_update()",
        "dm_rows_delete()",
        "dm_rows_patch()",
        "dm_rows_upsert()",
        "Conclusion",
        "Further Reading"
      ],
      "created": "2020-11-17 07:35:02",
      "modified": "2023-03-14 15:54:27",
      "commits": 11
    },
    {
      "source": "howto-dm-theory.Rmd",
      "filename": "howto-dm-theory.html",
      "title": "Introduction to relational data models",
      "author": "Katharina Brunner",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. Data Frames and Tables",
        "2. Data Model",
        "3. Primary Keys",
        "4. Foreign Keys",
        "5. Referential Integrity",
        "6. Normalization",
        "7. Relational Databases",
        "Conclusion",
        "Further reading"
      ],
      "created": "2020-05-24 10:07:37",
      "modified": "2025-07-01 18:30:15",
      "commits": 18
    },
    {
      "source": "tech-dm-draw.Rmd",
      "filename": "tech-dm-draw.html",
      "title": "Visualizing dm objects",
      "engine": "knitr::rmarkdown",
      "headings": [],
      "created": "2020-05-24 10:07:37",
      "modified": "2022-08-16 01:26:16",
      "commits": 6
    },
    {
      "source": "tech-dm-class.Rmd",
      "filename": "tech-dm-class.html",
      "title": "Class dm and basic operations",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Class dm",
        "Examples of dm objects",
        "Pass the tables directly",
        "Start with an empty dm",
        "Coerce a list of tables",
        "Turn tables from a src into a dm",
        "Low-level construction",
        "Access tables",
        "Primary keys of dm objects",
        "Foreign keys"
      ],
      "created": "2020-05-24 10:07:37",
      "modified": "2023-02-01 04:40:48",
      "commits": 14
    },
    {
      "source": "tech-dm-filter.Rmd",
      "filename": "tech-dm-filter.html",
      "title": "Filtering in relational data models",
      "author": "Katharina Brunner",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Data: nycflights13",
        "Filtering a dm object",
        "How it works",
        "Filtering Examples",
        "SQL statements behind filtering a dm object on a database"
      ],
      "created": "2020-05-24 10:07:37",
      "modified": "2025-07-01 18:30:15",
      "commits": 13
    },
    {
      "source": "tech-dm-naming.Rmd",
      "filename": "tech-dm-naming.html",
      "title": "Function naming logic",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Prefixes",
        "Suffixes"
      ],
      "created": "2020-05-24 10:07:37",
      "modified": "2022-11-14 13:42:24",
      "commits": 6
    },
    {
      "source": "tech-dm-join.Rmd",
      "filename": "tech-dm-join.html",
      "title": "Joining in relational data models",
      "author": "Katharina Brunner",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Data: nycflights13",
        "Joining a dm object",
        "How it works",
        "Joining Examples"
      ],
      "created": "2020-05-24 10:07:37",
      "modified": "2023-03-14 15:54:27",
      "commits": 13
    },
    {
      "source": "tech-dm-keyed.Rmd",
      "filename": "tech-dm-keyed.html",
      "title": "Manipulating individual tables",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Enabling {dplyr}-workflow within a dm",
        "Examples",
        "Use case 1: Add a new column to an existing table",
        "Use case 2: Creation of a surrogate key",
        "Use case 3: Disentangle dm",
        "Use case 4: Add summary table to dm",
        "Use case 5: Joining tables",
        "Use case 6: Retrieve all tables"
      ],
      "created": "2022-07-19 17:20:08",
      "modified": "2023-03-14 15:54:27",
      "commits": 8
    },
    {
      "source": "tech-dm-cdm.Rmd",
      "filename": "tech-dm-cdm.html",
      "title": "Migration guide: 'cdm' -> 'dm'",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Changes required when updating from version 0.0.5 to 0.0.6",
        "Replace cdm with dm",
        "Be careful with methods for dm: tbl, [[, $"
      ],
      "created": "2020-05-24 10:07:37",
      "modified": "2022-07-05 14:57:21",
      "commits": 3
    },
    {
      "source": "tech-dm-low-level.Rmd",
      "filename": "tech-dm-low-level.html",
      "title": "Model verification - keys, constraints and normalization",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Testing key constraints",
        "Testing cardinalities between two tables",
        "Examples",
        "Table surgery"
      ],
      "created": "2020-05-24 10:07:37",
      "modified": "2023-03-14 15:54:27",
      "commits": 5
    },
    {
      "source": "tech-dm-zoom.Rmd",
      "filename": "tech-dm-zoom.html",
      "title": "Zooming and manipulating tables",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Enabling {dplyr}-workflow within a dm",
        "Examples",
        "Use case 1: Add a new column to an existing table",
        "Use case 2: Creation of a surrogate key",
        "Use case 3: Disentangle dm",
        "Use case 4: Add summary table to dm",
        "Use case 5: Joining tables",
        "Tip: Accessing the zoomed table",
        "Possible pitfalls and caveats"
      ],
      "created": "2020-05-24 10:07:37",
      "modified": "2023-03-14 15:54:27",
      "commits": 8
    }
  ],
  "_score": 15.269174894838795,
  "_indexed": true,
  "_nocasepkg": "dm",
  "_universes": [
    "cynkra",
    "krlmlr"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.1.2.9001",
      "date": "2026-05-24T07:18:36.000Z",
      "distro": "noble",
      "commit": "9a6d1a526860b01fd2717e08f55ea07eebacde28",
      "fileid": "ba0b18e5c3e38321bf307fd2ee8995af72467e6f341b12bdfa01c85e4e97133e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cynkra/actions/runs/26354823479"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "1.1.2.9001",
      "date": "2026-05-24T07:18:25.000Z",
      "distro": "noble",
      "commit": "9a6d1a526860b01fd2717e08f55ea07eebacde28",
      "fileid": "20784425e4a544925d612052072f0926188e664f36dad3572930d4d9d03fe83d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cynkra/actions/runs/26354823479"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.1.2.9001",
      "date": "2026-05-24T07:37:01.000Z",
      "commit": "9a6d1a526860b01fd2717e08f55ea07eebacde28",
      "fileid": "fbdd5511eeede61d3eab516219279906be7bb918f2dfbe56634e732369160ef3",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cynkra/actions/runs/26354823479"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "1.1.2.9001",
      "date": "2026-05-24T07:42:20.000Z",
      "commit": "9a6d1a526860b01fd2717e08f55ea07eebacde28",
      "fileid": "437121e9ca5330281ae46daea2f4f1fe051f530d72dfea1a402c67e935981626",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cynkra/actions/runs/26354823479"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.1.2.9001",
      "date": "2026-05-24T07:18:25.000Z",
      "commit": "9a6d1a526860b01fd2717e08f55ea07eebacde28",
      "fileid": "8c993ba9a1f4c4de4fbdca30f0029c8bf3c126fdb58e3d59fe1dbd339ab89ae2",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cynkra/actions/runs/26354823479"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.1.2.9001",
      "date": "2026-05-24T07:17:52.000Z",
      "commit": "9a6d1a526860b01fd2717e08f55ea07eebacde28",
      "fileid": "28b4409baa5d411bc983402143341212094ac73a61fc5f2a316ad3b632b43b9f",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cynkra/actions/runs/26354823479"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.1.2.9001",
      "date": "2026-05-24T07:17:24.000Z",
      "commit": "9a6d1a526860b01fd2717e08f55ea07eebacde28",
      "fileid": "9c8830feb592ca4e5e2802c90043bdb1d1281bbf3a9cf7ce0d20417c6bd7b1b4",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cynkra/actions/runs/26354823479"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "1.1.2.9001",
      "date": "2026-05-24T07:19:57.000Z",
      "commit": "9a6d1a526860b01fd2717e08f55ea07eebacde28",
      "fileid": "0c0aad34ef2cfed6baf4f74127394da1e7a52f85b8884d590ee3eb5b8510a0a7",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cynkra/actions/runs/26354823479"
    }
  ]
}