marconi-core-1.2.0.0: Modular indexing for rewindable ledger
Safe HaskellSafe-Inferred
LanguageHaskell2010

Marconi.Core.Indexer.SQLiteAggregateQuery

Description

A SQLiteAggregateQuery provides a way to query the content of several SQLiteIndexers as if they were a single indexer.

Note that SQLiteAggregateQuery doesn't implement IsIndex@: it won't index anything, and won't pass any information to the indexers it relies on. It's sole purpose is to provide a unified access for queries.

Synopsis

Documentation

mkSQLiteAggregateQuery #

Arguments

:: Map String (SQLiteSourceProvider m point)

A map of indexers. The keys are used as an alias int the attach statement

-> IO (SQLiteAggregateQuery m point event) 

Build a SQLiteSourceProvider from a map that attaches each database of the provided sources to the corresponding alias

data SQLiteSourceProvider m point #

A wrapper around indexers.

Its purpose is mainly to allow the use of a heterogenerous lists of indexers as a source for a SQLiteAggregateQuery.

Constructors

forall indexer event.(IsSourceProvider m event indexer, Point event ~ point) => SQLiteSourceProvider (MVar (indexer event)) 

type IsSourceProvider m event indexer = (IsSync m event indexer, HasDatabasePath indexer) #

Alias to gather typeclasses required to be a source provider

data SQLiteAggregateQuery m point event #

An aggregation of SQLite indexers used to build query across indexers.

Constructors

SQLiteAggregateQuery 

Fields

Instances

Instances details
(MonadIO m, Ord point, point ~ Point event) => IsSync m event (SQLiteAggregateQuery m point) # 
Instance details

Defined in Marconi.Core.Indexer.SQLiteAggregateQuery

Methods

lastStablePoint :: SQLiteAggregateQuery m point event -> m (Point event) #

lastSyncPoint :: SQLiteAggregateQuery m point event -> m (Point event) #

MonadIO m => Closeable m (SQLiteAggregateQuery m point) # 
Instance details

Defined in Marconi.Core.Indexer.SQLiteAggregateQuery

Methods

close :: SQLiteAggregateQuery m point event -> m () #

(MonadIO m, MonadTrans t, Monad (t m), Ord point, point ~ Point event) => IsSync (t m) event (SQLiteAggregateQuery m point) # 
Instance details

Defined in Marconi.Core.Indexer.SQLiteAggregateQuery

Methods

lastStablePoint :: SQLiteAggregateQuery m point event -> t m (Point event) #

lastSyncPoint :: SQLiteAggregateQuery m point event -> t m (Point event) #

aggregateConnection :: Lens' (SQLiteAggregateQuery m point event) (Pool Connection) #

The connection that provides a read access accross the different databases

withResource :: Pool a -> (a -> IO r) -> IO r #

class HasDatabasePath indexer where #

A class for indexer that has access to a SQLite database and know the path to this database

Methods

getDatabasePath :: indexer event -> SQLiteDBLocation #

Retrieve the database path from the indexer

Instances

Instances details
HasDatabasePath SQLiteIndexer # 
Instance details

Defined in Marconi.Core.Indexer.SQLiteAggregateQuery

HasDatabasePath indexer => HasDatabasePath (WithCatchup indexer) # 
Instance details

Defined in Marconi.Core.Transformer.WithCatchup

Methods

getDatabasePath :: WithCatchup indexer event -> SQLiteDBLocation #

HasDatabasePath indexer => HasDatabasePath (WithDelay indexer) # 
Instance details

Defined in Marconi.Core.Transformer.WithDelay

Methods

getDatabasePath :: WithDelay indexer event -> SQLiteDBLocation #

HasDatabasePath index => HasDatabasePath (IndexTransformer config index) # 
Instance details

Defined in Marconi.Core.Transformer.IndexTransformer

Methods

getDatabasePath :: IndexTransformer config index event -> SQLiteDBLocation #

HasDatabasePath indexer => HasDatabasePath (WithCache query indexer) # 
Instance details

Defined in Marconi.Core.Transformer.WithCache

Methods

getDatabasePath :: WithCache query indexer event -> SQLiteDBLocation #

HasDatabasePath indexer => HasDatabasePath (WithTrace m indexer) # 
Instance details

Defined in Marconi.Core.Transformer.WithTracer

Methods

getDatabasePath :: WithTrace m indexer event -> SQLiteDBLocation #

HasDatabasePath indexer => HasDatabasePath (WithTracer m indexer) # 
Instance details

Defined in Marconi.Core.Transformer.WithTracer

Methods

getDatabasePath :: WithTracer m indexer event -> SQLiteDBLocation #

HasDatabasePath indexer => HasDatabasePath (WithTransform indexer output) # 
Instance details

Defined in Marconi.Core.Transformer.WithTransform

Methods

getDatabasePath :: WithTransform indexer output event -> SQLiteDBLocation #