{
  "_id": "6a1ef1d8b401979e73413a4f",
  "Package": "SCDB",
  "Type": "Package",
  "Title": "Easily Access and Maintain Time-Based Versioned Data\n(Slowly-Changing-Dimension)",
  "Version": "0.6.1.9000",
  "Authors@R": "c(person(\n\"Rasmus Skytte\", \"Randl\\U00F8v\",\nemail = \"rske@ssi.dk\",\nrole = c(\"aut\", \"cre\", \"rev\"),\ncomment = c(ORCID = \"0000-0002-5860-3838\")\n),\nperson(\n\"Marcus Munch\", \"Gr\\U00FCnewald\",\nrole = \"aut\",\ncomment = c(ORCID = \"0009-0006-8090-406X\")\n),\nperson(\n\"Lasse Engbo\", \"Christiansen\",\nemail = \"lsec@ssi.dk\",\nrole = c(\"rev\", \"ctb\"),\ncomment = c(ORCID = \"0000-0001-5019-1931\")\n),\nperson(\"Sofia Myrup\", \"Otero\", , \"smot@ssi.dk\", role = \"rev\"),\nperson(\"Kim Daniel\", \"Jacobsen\", role = \"ctb\"),\nperson(\"Statens Serum Institut\", role = c(\"cph\", \"fnd\")))",
  "Description": "A collection of functions that enable easy access and\nupdating of a database of data over time. More specifically,\nthe package facilitates type-2 history for data-warehouses and\nprovides a number of Quality of life improvements for working\non SQL databases with R. For reference see Ralph Kimball and\nMargy Ross (2013, ISBN 9781118530801).",
  "License": "GPL-3",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE, r6 = TRUE)",
  "Language": "en-US",
  "URL": "https://github.com/ssi-dk/SCDB, https://ssi-dk.github.io/SCDB/",
  "Config/testthat/edition": "3",
  "BugReports": "https://github.com/ssi-dk/SCDB/issues",
  "VignetteBuilder": "knitr",
  "Config/roxygen2/version": "8.0.0",
  "Config/pak/sysreqs": "libicu-dev libssl-dev",
  "Repository": "https://ssi-dk.r-universe.dev",
  "Date/Publication": "2026-05-19 06:32:33 UTC",
  "RemoteUrl": "https://github.com/ssi-dk/scdb",
  "RemoteRef": "HEAD",
  "RemoteSha": "70b3d17a12ad6952da9da8195fe1c549d9659bf7",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-05-19 07:55:48 UTC",
    "User": "root"
  },
  "Author": "Rasmus Skytte Randløv [aut, cre, rev] (ORCID:\n<https://orcid.org/0000-0002-5860-3838>),\nMarcus Munch Grünewald [aut] (ORCID:\n<https://orcid.org/0009-0006-8090-406X>),\nLasse Engbo Christiansen [rev, ctb] (ORCID:\n<https://orcid.org/0000-0001-5019-1931>),\nSofia Myrup Otero [rev],\nKim Daniel Jacobsen [ctb],\nStatens Serum Institut [cph, fnd]",
  "Maintainer": "Rasmus Skytte Randløv <rske@ssi.dk>",
  "MD5sum": "9110927a869eedc283d81cdcb4a53ca2",
  "_user": "ssi-dk",
  "_type": "src",
  "_file": "SCDB_0.6.1.9000.tar.gz",
  "_fileid": "4d0caf2ee9a09a1866a1b0acd13fd0ad6540260c3de751628dc8ee03dd809aa4",
  "_filesize": 433096,
  "_sha256": "4d0caf2ee9a09a1866a1b0acd13fd0ad6540260c3de751628dc8ee03dd809aa4",
  "_created": "2026-05-19T07:55:48.000Z",
  "_published": "2026-06-02T15:08:08.959Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 79103496754,
      "time": 265,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7077953445"
    },
    {
      "job": 79103497752,
      "time": 243,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7077946683"
    },
    {
      "job": 79103497047,
      "time": 196,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7077936233"
    },
    {
      "job": 79103496303,
      "time": 195,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7078001174"
    },
    {
      "job": 79103498249,
      "time": 243,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7077872036"
    },
    {
      "job": 79103495563,
      "time": 145,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7361688937"
    },
    {
      "job": 79103497853,
      "time": 238,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7077945546"
    },
    {
      "job": 79103498394,
      "time": 214,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7077938447"
    },
    {
      "job": 79103497954,
      "time": 214,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7077938169"
    }
  ],
  "_buildurl": "https://github.com/r-universe/ssi-dk/actions/runs/26083905053",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/ssi-dk/scdb",
  "_commit": {
    "id": "70b3d17a12ad6952da9da8195fe1c549d9659bf7",
    "author": "Rasmus Skytte Randløv <rske@ssi.dk>",
    "committer": "GitHub <noreply@github.com>",
    "message": "Merge pull request #226 from ssi-dk/rc-v0.6.1\n\nRelease v0.6.1",
    "time": 1779172353
  },
  "_maintainer": {
    "name": "Rasmus Skytte Randløv",
    "email": "rske@ssi.dk",
    "login": "rasmusskytte",
    "orcid": "0000-0002-5860-3838",
    "description": "Modeller at Statens Serums Institute.\nPhysics PhD from the Niels Bohr Institute",
    "uuid": 8895829
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 3.6.0",
      "role": "Depends"
    },
    {
      "package": "checkmate",
      "role": "Imports"
    },
    {
      "package": "DBI",
      "role": "Imports"
    },
    {
      "package": "dbplyr",
      "version": ">= 2.5.0",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "glue",
      "role": "Imports"
    },
    {
      "package": "lubridate",
      "role": "Imports"
    },
    {
      "package": "methods",
      "role": "Imports"
    },
    {
      "package": "openssl",
      "role": "Imports"
    },
    {
      "package": "parallelly",
      "role": "Imports"
    },
    {
      "package": "purrr",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "R6",
      "role": "Imports"
    },
    {
      "package": "stringr",
      "role": "Imports"
    },
    {
      "package": "tidyr",
      "role": "Imports"
    },
    {
      "package": "tidyselect",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "magrittr",
      "role": "Imports"
    },
    {
      "package": "callr",
      "role": "Suggests"
    },
    {
      "package": "conflicted",
      "role": "Suggests"
    },
    {
      "package": "devtools",
      "role": "Suggests"
    },
    {
      "package": "duckdb",
      "version": ">= 0.10.1",
      "role": "Suggests"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    },
    {
      "package": "here",
      "role": "Suggests"
    },
    {
      "package": "jsonlite",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "lintr",
      "role": "Suggests"
    },
    {
      "package": "microbenchmark",
      "role": "Suggests"
    },
    {
      "package": "odbc",
      "role": "Suggests"
    },
    {
      "package": "pak",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "roxygen2",
      "role": "Suggests"
    },
    {
      "package": "pkgdown",
      "role": "Suggests"
    },
    {
      "package": "RPostgres",
      "role": "Suggests"
    },
    {
      "package": "RSQLite",
      "role": "Suggests"
    },
    {
      "package": "spelling",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "tibble",
      "role": "Suggests"
    },
    {
      "package": "tidyverse",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    }
  ],
  "_owner": "ssi-dk",
  "_selfowned": true,
  "_usedby": 1,
  "_updates": [
    {
      "week": "2025-41",
      "n": 4
    },
    {
      "week": "2025-43",
      "n": 2
    },
    {
      "week": "2025-44",
      "n": 6
    },
    {
      "week": "2025-45",
      "n": 3
    },
    {
      "week": "2025-49",
      "n": 4
    },
    {
      "week": "2025-50",
      "n": 2
    },
    {
      "week": "2026-02",
      "n": 2
    },
    {
      "week": "2026-04",
      "n": 6
    },
    {
      "week": "2026-05",
      "n": 5
    },
    {
      "week": "2026-10",
      "n": 1
    },
    {
      "week": "2026-12",
      "n": 2
    },
    {
      "week": "2026-20",
      "n": 5
    },
    {
      "week": "2026-21",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "v0.5.2",
      "date": "2026-01-06"
    },
    {
      "name": "v0.6.0",
      "date": "2026-01-23"
    },
    {
      "name": "v0.6.1",
      "date": "2026-05-18"
    }
  ],
  "_stars": 7,
  "_contributors": [
    {
      "user": "rasmusskytte",
      "count": 256,
      "uuid": 8895829
    },
    {
      "user": "marcusmunch",
      "count": 19,
      "uuid": 25414495
    },
    {
      "user": "lasseengbochr",
      "count": 4,
      "uuid": 147731649
    },
    {
      "user": "olivroy",
      "count": 3,
      "uuid": 52606734
    },
    {
      "user": "hadley",
      "count": 2,
      "uuid": 4196
    },
    {
      "user": "kjakobse",
      "count": 1,
      "uuid": 83131406
    }
  ],
  "_userbio": {
    "uuid": 26898069,
    "type": "organization",
    "name": "Statens Serum Institut"
  },
  "_downloads": {
    "count": 215,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/SCDB"
  },
  "_devurl": "https://github.com/ssi-dk/scdb",
  "_pkgdown": "https://ssi-dk.github.io/SCDB/",
  "_searchresults": 14,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/SCDB.html",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/ssi-dk/scdb",
  "_realowner": "ssi-dk",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1",
      "date": "2023-08-28"
    },
    {
      "version": "0.2",
      "date": "2023-09-26"
    },
    {
      "version": "0.2.1",
      "date": "2023-11-30"
    },
    {
      "version": "0.3",
      "date": "2024-01-13"
    },
    {
      "version": "0.4.0",
      "date": "2024-03-21"
    },
    {
      "version": "0.4.1",
      "date": "2024-10-03"
    },
    {
      "version": "0.5.0",
      "date": "2025-02-03"
    },
    {
      "version": "0.5.1",
      "date": "2025-02-27"
    },
    {
      "version": "0.5.2",
      "date": "2026-01-08"
    },
    {
      "version": "0.6.0",
      "date": "2026-01-23"
    },
    {
      "version": "0.6.1",
      "date": "2026-05-18"
    }
  ],
  "_exports": [
    "%>%",
    "close_connection",
    "create_index",
    "create_logs_if_missing",
    "create_table",
    "db_timestamp",
    "defer_db_cleanup",
    "delta_export",
    "delta_load",
    "digest_to_checksum",
    "filter_keys",
    "get_catalog",
    "get_connection",
    "get_schema",
    "get_table",
    "get_tables",
    "id",
    "interlace",
    "is.historical",
    "lock_table",
    "Logger",
    "LoggerNull",
    "nrow",
    "schema_exists",
    "slice_time",
    "table_exists",
    "unique_table_name",
    "unlock_table",
    "update_snapshot"
  ],
  "_help": [
    {
      "page": "close_connection",
      "title": "Close connection to the database",
      "topics": [
        "close_connection"
      ]
    },
    {
      "page": "create_index",
      "title": "Create the indexes on table",
      "topics": [
        "create_index"
      ]
    },
    {
      "page": "create_logs_if_missing",
      "title": "Create a table with the SCDB log structure if it does not exists",
      "topics": [
        "create_logs_if_missing"
      ]
    },
    {
      "page": "create_table",
      "title": "Create a historical table from input data",
      "topics": [
        "create_table"
      ]
    },
    {
      "page": "db_locks",
      "title": "Sets, queries and removes locks for database tables",
      "topics": [
        "db_locks",
        "lock_table",
        "unlock_table"
      ]
    },
    {
      "page": "db_timestamp",
      "title": "Determine the type of timestamps the database supports",
      "topics": [
        "db_timestamp"
      ]
    },
    {
      "page": "defer_db_cleanup",
      "title": "Delete table at function exit",
      "topics": [
        "defer_db_cleanup"
      ]
    },
    {
      "page": "delta_loading",
      "title": "Import and export a data-chunk with history from historical data",
      "topics": [
        "delta_export",
        "delta_load",
        "delta_loading"
      ]
    },
    {
      "page": "digest_to_checksum",
      "title": "Computes an checksum from columns",
      "topics": [
        "digest_to_checksum"
      ]
    },
    {
      "page": "filter_keys",
      "title": "Filters .data according to all records in the filter",
      "topics": [
        "filter_keys"
      ]
    },
    {
      "page": "get_schema",
      "title": "Get the current schema/catalog of a database-related objects",
      "topics": [
        "get_catalog",
        "get_catalog.Microsoft SQL Server",
        "get_schema",
        "get_schema.PqConnection",
        "get_schema.SQLiteConnection"
      ]
    },
    {
      "page": "get_connection",
      "title": "Opens connection to the database",
      "topics": [
        "get_connection",
        "get_connection.default",
        "get_connection.duckdb_driver",
        "get_connection.OdbcDriver",
        "get_connection.PqDriver",
        "get_connection.SQLiteDriver"
      ]
    },
    {
      "page": "get_table",
      "title": "Retrieves a named table from a given schema on the connection",
      "topics": [
        "get_table"
      ]
    },
    {
      "page": "get_tables",
      "title": "List the available tables on the connection",
      "topics": [
        "get_tables"
      ]
    },
    {
      "page": "id",
      "title": "Convenience function for DBI::Id",
      "topics": [
        "id",
        "id.character",
        "id.data.frame",
        "id.Id"
      ]
    },
    {
      "page": "interlace",
      "title": "Combine any number of tables, where each has their own time axis of validity",
      "topics": [
        "interlace"
      ]
    },
    {
      "page": "is.historical",
      "title": "Checks if table contains historical data",
      "topics": [
        "is.historical"
      ]
    },
    {
      "page": "joins",
      "title": "SQL Joins",
      "topics": [
        "anti_join.tbl_sql",
        "full_join.tbl_sql",
        "inner_join.tbl_sql",
        "joins",
        "left_join.tbl_sql",
        "right_join.tbl_sql",
        "semi_join.tbl_sql"
      ]
    },
    {
      "page": "Logger",
      "title": "Logger: Complete logging to console, file and database",
      "topics": [
        "Logger"
      ]
    },
    {
      "page": "LoggerNull",
      "title": "LoggerNull: The no-logging Logger",
      "topics": [
        "LoggerNull"
      ]
    },
    {
      "page": "nrow",
      "title": "nrow() but also works on remote tables",
      "topics": [
        "nrow"
      ]
    },
    {
      "page": "schema_exists",
      "title": "Test if a schema exists in given connection",
      "topics": [
        "schema_exists"
      ]
    },
    {
      "page": "slice_time",
      "title": "Slices a data object based on time / date",
      "topics": [
        "slice_time"
      ]
    },
    {
      "page": "table_exists",
      "title": "Test if a table exists in database",
      "topics": [
        "table_exists",
        "table_exists.DBIConnection"
      ]
    },
    {
      "page": "unique_table_name",
      "title": "Create a name for a temporary table",
      "topics": [
        "unique_table_name"
      ]
    },
    {
      "page": "unite.tbl_dbi",
      "title": "tidyr::unite for tbl_dbi",
      "topics": [
        "unite.tbl_dbi"
      ]
    },
    {
      "page": "update_snapshot",
      "title": "Update a historical table",
      "topics": [
        "update_snapshot"
      ]
    }
  ],
  "_pkglogo": "https://github.com/ssi-dk/scdb/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/ssi-dk/scdb/raw/HEAD/README.md",
  "_rundeps": [
    "askpass",
    "backports",
    "blob",
    "checkmate",
    "cli",
    "cpp11",
    "DBI",
    "dbplyr",
    "dplyr",
    "generics",
    "glue",
    "lifecycle",
    "lubridate",
    "magrittr",
    "openssl",
    "parallelly",
    "pillar",
    "pkgconfig",
    "purrr",
    "R6",
    "rlang",
    "stringi",
    "stringr",
    "sys",
    "tibble",
    "tidyr",
    "tidyselect",
    "timechange",
    "utf8",
    "vctrs",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "delta-loading.Rmd",
      "filename": "delta-loading.html",
      "title": "Batch migration and incremental backups",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Intermittent data migration",
        "Batch data migration"
      ],
      "created": "2026-01-23 09:47:53",
      "modified": "2026-01-26 07:42:22",
      "commits": 2
    },
    {
      "source": "SCDB.Rmd",
      "filename": "SCDB.html",
      "title": "SCDB: Basic principles",
      "engine": "knitr::rmarkdown",
      "headings": [
        "References"
      ],
      "created": "2024-03-21 09:29:50",
      "modified": "2025-01-13 09:46:06",
      "commits": 4
    },
    {
      "source": "benchmarks.Rmd",
      "filename": "benchmarks.html",
      "title": "SCDB: Benchmarks",
      "engine": "knitr::rmarkdown",
      "headings": [],
      "created": "2024-04-15 11:33:38",
      "modified": "2026-05-19 06:32:33",
      "commits": 10
    },
    {
      "source": "slowly-changing-dimension.Rmd",
      "filename": "slowly-changing-dimension.html",
      "title": "Slowly Changing Dimension methodology",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Type 1 and Type 2 history",
        "A \"timeline of timelines\"",
        "Summary",
        "References"
      ],
      "created": "2023-10-16 08:05:37",
      "modified": "2025-02-19 09:27:48",
      "commits": 8
    }
  ],
  "_score": 7.582290682718995,
  "_indexed": true,
  "_nocasepkg": "scdb",
  "_universes": [
    "ssi-dk",
    "rasmusskytte"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.6.1.9000",
      "date": "2026-05-19T07:58:33.000Z",
      "distro": "noble",
      "commit": "70b3d17a12ad6952da9da8195fe1c549d9659bf7",
      "fileid": "22edab5534cbdd633b689c69388eb93c9b54cca86d96490fdedd9414335cbb49",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/ssi-dk/actions/runs/26083905053"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.6.1.9000",
      "date": "2026-05-19T07:58:11.000Z",
      "distro": "noble",
      "commit": "70b3d17a12ad6952da9da8195fe1c549d9659bf7",
      "fileid": "10f47c89c152a65972398c7e9041af8facada12b98b7e615d213dd038dbbff84",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/ssi-dk/actions/runs/26083905053"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.6.1.9000",
      "date": "2026-05-19T07:58:00.000Z",
      "commit": "70b3d17a12ad6952da9da8195fe1c549d9659bf7",
      "fileid": "6aa043b8502883b36ced7a37f385f18da8fb6db06456701bfe9514ef98bae516",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/ssi-dk/actions/runs/26083905053"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "0.6.1.9000",
      "date": "2026-05-19T08:01:14.000Z",
      "commit": "70b3d17a12ad6952da9da8195fe1c549d9659bf7",
      "fileid": "354cfbb498a123052182abf30ae68c8fd88366dcb7f76eb094dfcd00a291ba5b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/ssi-dk/actions/runs/26083905053"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.6.1.9000",
      "date": "2026-05-19T07:57:28.000Z",
      "commit": "70b3d17a12ad6952da9da8195fe1c549d9659bf7",
      "fileid": "bb92d5ecbeee1fe1d6a73e1e2a611d203d3c485b2046b7cce2494faff068bc6c",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/ssi-dk/actions/runs/26083905053"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.6.1.9000",
      "date": "2026-05-19T07:57:21.000Z",
      "commit": "70b3d17a12ad6952da9da8195fe1c549d9659bf7",
      "fileid": "f1de438d74d39db5a47951b8a7822057b26beec991d8d25f09885701ae8fc3a8",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/ssi-dk/actions/runs/26083905053"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "0.6.1.9000",
      "date": "2026-05-19T07:57:13.000Z",
      "commit": "70b3d17a12ad6952da9da8195fe1c549d9659bf7",
      "fileid": "8fc326c74d58e9151e82a060ec82db44b2abfd34fda33c5b1c70d6f3847735da",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/ssi-dk/actions/runs/26083905053"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.6.1.9000",
      "date": "2026-06-02T15:07:41.000Z",
      "commit": "70b3d17a12ad6952da9da8195fe1c549d9659bf7",
      "fileid": "85bbb3a716d0af4b068c24f09d8fedb1f78cded03614218f34f1dbca33b7dc60",
      "status": "success",
      "buildurl": "https://github.com/r-universe/ssi-dk/actions/runs/26083905053"
    }
  ]
}