Module Logseq_sqlite_storage

module PSet = Persistent_sorted_set
module Transit = Transit_native.Transit.Json
type content_format =
  1. | Ocaml_marshal
  2. | Logseq_transit
  3. | Empty
  4. | Unknown
type summary = {
  1. has_kvs_table : bool;
  2. row_count : int;
  3. has_root : bool;
  4. has_tail : bool;
  5. root_content_format : content_format;
  6. root_keys : string list;
  7. root_index_addresses : int list;
}
val kvs_schema : string
val ocaml_payload_prefix : string
val uri_hex_digit : int -> char
val uri_escape_path : string -> string
val readonly_uri : string -> string
val with_db : ?read_only:??? -> string -> (Sqlite3.db -> 'a) -> 'a
val check_sql : Sqlite3.db -> string -> Sqlite3.Rc.t -> unit
val exec_sql : ?read_only:??? -> string -> string -> unit
val select_map : ?read_only:??? -> string -> string -> (Sqlite3.stmt -> 'a) -> 'a list
val sql_quote : string -> string
val hex_digit : int -> char
val hex_value : char -> int
val hex_encode : string -> string
val hex_decode : string -> string
val starts_with : string -> string -> bool
val contains_substring : string -> string -> bool
val sqlite_addr_of_storage_address : string -> int
val storage_address_of_sqlite_addr : int -> string
val string_of_transit_key : Transit.value -> string option
val keyword_of_transit : Transit.value -> string option
val bool_of_transit : Transit.value -> bool option
val string_of_transit : Transit.value -> string option
val int_of_transit_value : Transit.value -> int option
val lookup_transit_key : string -> (Transit.value * 'a) list -> 'a option
val logseq_schema_default_attr : Datascript.schema_attr
val transit_of_cardinality : Datascript.cardinality -> Transit.value
val transit_of_unique : Datascript.unique -> Transit.value
val transit_of_value_type : Datascript.value_type -> Transit.value
val transit_of_ref_type : PSet.ref_type -> Transit.value
val transit_of_tuple_attrs : string list -> Transit.value
val transit_of_tuple_types : Datascript.value_type list -> Transit.value
val schema_attr_to_transit : ident_backed:bool -> Datascript.schema_attr -> string -> Transit.value
val schema_to_transit : ?eids:??? -> (Stdlib.String.t * Datascript.schema_attr) list -> Transit.value
val value_to_transit : Datascript.value -> Transit.value
val datom_to_transit : Datascript.datom -> Transit.value
val index_metadata_to_transit : Datascript.storage_index_metadata -> Transit.value
val optional_metadata_entry : string -> Datascript.storage_index_metadata option -> (Transit.value * Transit.value) list
val storage_root_to_transit : Datascript.storage_root -> Transit.value
val storage_node_to_transit : Datascript.datom PSet.stored_node -> Transit.value
val storage_tail_to_transit : Datascript.datom list list -> Transit.value
val payload_to_transit : Datascript.storage_payload -> Transit.value
val json_addresses_of_payload : Datascript.storage_payload -> string option
val payload_to_content : Datascript.storage_payload -> string
val cardinality_of_transit : Transit.value -> Datascript.cardinality
val unique_of_transit : Transit.value -> Datascript.unique option
val value_type_of_transit : Transit.value -> Datascript.value_type option
val tuple_attrs_of_transit : Transit.value -> string list option
val tuple_types_of_transit : Transit.value -> Datascript.value_type list option
val schema_attr_of_transit : Transit.value -> Datascript.schema_attr
val schema_of_transit : Transit.value -> (string * Datascript.schema_attr) list
val schema_eids_of_transit : Transit.value -> (int * string) list
val ref_type_of_transit : Transit.value -> PSet.ref_type
val int_of_transit : string -> Transit.value -> int
val value_of_transit : Transit.value -> Datascript.value
val datom_of_transit : Transit.value -> Datascript.datom
val datoms_of_transit : Transit.value -> Datascript.datom list
val addresses_of_json : string option -> string list
val storage_root_of_transit : (Transit.value * Transit.value) list -> Datascript.storage_root
val storage_node_of_transit : string option -> (Transit.value * Transit.value) list -> Datascript.datom PSet.stored_node
val storage_tail_of_transit : Transit.value -> Datascript.datom list list
val payload_of_transit : ?addresses:??? -> Transit.value -> Datascript.storage_payload option
val payload_of_content : ?addresses:??? -> string -> Datascript.storage_payload option
val create_kvs_table : string -> unit
val select_single_int : ?read_only:??? -> string -> string -> int
val select_single_string : ?read_only:??? -> string -> string -> string option
val content_format : string -> content_format
val string_of_root_json_key : [> `String of string ] -> string option
val int_of_root_json_value : [> `Int of int | `Intlit of string ] -> int option
val shallow_root_entries : 'a list -> ('a * 'a) list
val decode_shallow_root_metadata : string -> string list * int list
val decode_root_metadata : string -> string list * int list
val inspect : ?read_only:??? -> string -> summary
val graph_db_paths : string -> Stdlib.String.t list
val logseq_cardinality_of_transit : Transit.value -> Datascript.cardinality
val logseq_unique_of_transit : Transit.value -> Datascript.unique option
val logseq_value_type_of_transit : Transit.value -> Datascript.value_type option
val logseq_schema_attr_of_transit : Transit.value -> Datascript.schema_attr
val logseq_timestamp_attrs : string list
val ends_with : string -> string -> bool
val logseq_timestamp_attr : string -> bool
val normalize_logseq_schema_attr : string -> Datascript.schema_attr -> Datascript.schema_attr
type shallow_reader = {
  1. mutable shallow_cache : string array;
  2. shallow_cache_all_strings : bool;
}
val shallow_cache_code_digits : int
val shallow_base_char_code : int
val shallow_cache_code_to_index : string -> int
val shallow_cacheable : shallow_reader -> string -> bool
val shallow_is_cache_code : Stdlib.String.t -> bool
val shallow_remember : shallow_reader -> string -> unit
val shallow_decode_string : shallow_reader -> Stdlib.String.t -> Stdlib.String.t
val shallow_keyword : shallow_reader -> [> `String of Stdlib.String.t ] -> string option
val shallow_bool : [> `Bool of 'a ] -> 'a option
val shallow_scan : shallow_reader -> ([< `Assoc of (Stdlib.String.t * 'a) list | `Bool of 'b | `Float of 'c | `Floatlit of 'd | `Int of 'e | `Intlit of 'f | `List of 'a list | `Null | `String of Stdlib.String.t | `Tuple of 'a list | `Variant of Stdlib.String.t * 'a option String ] as 'a) -> unit
val shallow_pairs : 'a list -> ('a * 'a) list
val shallow_value_type : shallow_reader -> [> `String of Stdlib.String.t ] -> Datascript.value_type option
val shallow_unique : shallow_reader -> [> `String of Stdlib.String.t ] -> Datascript.unique option
val shallow_schema_attr : shallow_reader -> ([< `Assoc of (Stdlib.String.t * 'a) list | `Bool of bool | `Float of 'b & 'c | `Floatlit of 'd & 'e | `Int of 'f & 'g | `Intlit of 'h & 'i | `List of 'a list | `Null | `String of Stdlib.String.t | `Tuple of 'a list | `Variant of Stdlib.String.t * 'a option Bool List String ] as 'a) -> Datascript.schema_attr
val shallow_schema_of_root_content : string -> (string * Datascript.schema_attr) list option
val logseq_root_content : ?read_only:??? -> string -> string
val logseq_root_entries : ?read_only:??? -> string -> (Transit.value * Transit.value) list
val schema_of_logseq_graph : ?read_only:??? -> string -> (string * Datascript.schema_attr) list
val int_of_shallow_string : string -> int
val int64_of_shallow_string : string -> int64
val logseq_value_of_shallow_json : shallow_reader -> ([< `Assoc of (Stdlib.String.t * 'a) list | `Bool of bool | `Float of float | `Floatlit of string | `Int of int | `Intlit of string | `List of 'a list | `Null | `String of Stdlib.String.t | `Tuple of 'a list | `Variant of Stdlib.String.t * 'a option List String ] as 'a) -> Datascript.value
val logseq_attr_of_shallow_json : shallow_reader -> [> `String of Stdlib.String.t ] -> Stdlib.String.t
val logseq_int_of_shallow_json : shallow_reader -> [> `Int of int | `Intlit of string | `String of Stdlib.String.t ] -> int
val logseq_datom_of_shallow_json : shallow_reader -> [> `List of ([< `Assoc of (Stdlib.String.t * 'a) list | `Bool of bool | `Float of float | `Floatlit of string | `Int of Datascript.tx | `Intlit of string | `List of 'a list | `Null | `String of Stdlib.String.t | `Tuple of 'a list | `Variant of Stdlib.String.t * 'a option Int Intlit List String ] as 'a) list ] -> Datascript.datom
val logseq_datoms_of_row_with_reader : shallow_reader -> string -> Datascript.datom list
val logseq_datoms_of_row : string -> Datascript.datom list
val add_query_attr : Datascript.attr list -> Datascript.query_term -> Datascript.attr list
val add_short_pattern_attrs : Datascript.attr list -> Datascript.query_term list -> Datascript.attr list
val add_query_clause_attrs : Datascript.attr list -> Datascript.query_clause -> Datascript.attr list
val add_pull_selector_attrs : Datascript.attr list -> Datascript.pull_selector -> Datascript.attr list
val add_pull_form_attrs : string list -> Datascript.query_form -> string list
val add_find_spec_attrs : Datascript.attr list -> Datascript.find_spec -> Datascript.attr list
val query_attrs : Datascript.query -> Stdlib.String.t list
val sql_like_pattern : string -> string
val logseq_keys_or_shorthand_row_sql : string
val logseq_keys_and_attrs_sql : string list -> string
val datoms_of_logseq_graph_for_attrs : ?read_only:??? -> string -> Datascript.attr list -> Datascript.datom list
val datoms_of_logseq_graph : ?read_only:??? -> ?limit:??? -> string -> Datascript.datom list
val parse_logseq_query_with_schema : ?read_only:??? -> string -> string -> (string * Datascript.schema_attr) list * Datascript.query_return * Datascript.query_return_map option * Datascript.query
val query_logseq_graph : ?read_only:??? -> ?inputs:??? -> string -> string -> Datascript.query_output
val delete_sql : string list -> string
val upsert_sql : (string * Datascript.storage_payload) -> string
val storage : string -> Datascript.storage