function getTransactionRecordSet( $fromTransactionId, $transactionCount, $userName ) {
	global
		  $dataSet;
		
	$o = OmegaWikiAttributes::getInstance();
	$dc = wdGetDataSetContext();
	$queryTransactionInformation = new QueryLatestTransactionInformation();

	$restrictions = array( "transaction_id <= $fromTransactionId" );
	
	if ( $userName != "" )
		$restrictions[] = "EXISTS (SELECT user_name FROM user WHERE user.user_id={$dc}_transactions.user_id AND user.user_name='" . $userName . "')";

	$recordSet = queryRecordSet(
		'transaction-id',
		$queryTransactionInformation,
		$o->transactionId,
		new TableColumnsToAttributesMapping(
			new TableColumnsToAttribute( array( 'transaction_id' ), $o->transactionId )
		),
		$dataSet->transactions,
		$restrictions,
		array( 'transaction_id DESC' ),
		$transactionCount
	);

	$recordSet->getStructure()->addAttribute( $o->transactionId );
	expandTransactionIDsInRecordSet( $recordSet );
	$recordSet->getStructure()->addAttribute( $o->updatesInTransaction );
	expandUpdatesInTransactionInRecordSet( $recordSet );

	return $recordSet;
}
function getDefinedMeaningClassMembershipRecordSet( $definedMeaningId, ViewInformation $viewInformation ) {
	global
		$dataSet;

	$o = OmegaWikiAttributes::getInstance();

	$recordSet = queryRecordSet(
		$o->classMembershipStructure->getStructureType(),
		$viewInformation->queryTransactionInformation,
		$o->classMembershipId,
		new TableColumnsToAttributesMapping(
			new TableColumnsToAttribute( array( 'class_membership_id' ), $o->classMembershipId ),
			new TableColumnsToAttribute( array( 'class_mid' ), $o->class )
		),
		$dataSet->classMemberships,
		array( "class_member_mid=$definedMeaningId" )
	);
	
	expandDefinedMeaningReferencesInRecordSet( $recordSet, array( $o->class ) );
	
	return $recordSet;
}