GnrSqlDbCluster

è la classe che raggruppa tutte le connessioni ad uno stesso database fisico, contiene i default dei parametri di connessione, il tipo di database usato e fornisce la corretta classe di adapter

GnrSqlDb

è la classe che rappresenta la connessione al database. Contiene l'engine sqlalchemy, l'adapter istanziato, gli oggetti StructureData? e StructureObj?. Gli StructureObj? vengono costruiti con il normale procedimento di build della StructureData?, con classi presi dal modulo gnrsqlclasses. In questo modulo tuttavia, molte classi non sono costruite (build) immediatamente, ma al loro posto viene preparato un BagCachedResolver?. Ad esempio: lo StructureObj? partendo incontra come primo nodo un tag "schema_list": a questa sqlclass corrisponde SqlSchemataResolver?, che all'init non innesta un build ricorsivo, quindi il build si ferma per il momento. Quando si acceede alla root della StructureObj? con un call, il resolver viene eseguito: il suo risultato è una istanza SqlSchemata?, cioè il "vero" StructureObj? deputato a gestire la lista degli schemi. Questo meccanismo continua ai livelli successivi, infatti anche le liste di tables e views sono gestite con i resolver, ma in questo caso non è neppure necessario eseguire il resolver, perchè ci pensa la get dello StructureObj?.

Lo scopo di questi resolver è completare i dati letti dalla StructureData? con altri dati provenienti dalla struttura fisica del database: il resolver prende il valore il suo corrispettivo nodo dalla StructureData?, lo copia in una nuova Bag, e integra questa con i dati letti dal database tramite l'adapter, simulando la costruzione degli opportuni child come se fosse stata fatta "a mano" nel configure.