Difference between revisions of "Freeside:3:Documentation:Developer/FS/h Common"
From Freeside
m (Edit via perl MediaWiki framework (1.13)) |
m (Edit via perl MediaWiki framework (1.13)) |
||
Line 17: | Line 17: | ||
; sql_h_searchs END_TIMESTAMP [ START_TIMESTAMP ] | ; sql_h_searchs END_TIMESTAMP [ START_TIMESTAMP ] | ||
:Like sql_h_search, but limited to the single most recent record (before END_TIMESTAMP) | :Like sql_h_search, but limited to the single most recent record (before END_TIMESTAMP) | ||
+ | ; sql_diff START_TIMESTAMP, END_TIMESTAMP[, WHERE] | ||
+ | :Returns a complete SQL statement to find all records that were changed between START_TIMESTAMP and END_TIMESTAMP. This finds only replacements, not new or deleted records. | ||
+ | |||
+ | :For each modified record, this will return ''one'' row (not two rows as in the history table) with the primary key of the record, "old_historynum" (the historynum of the last modification before START_TIMESTAMP), and "new_historynum" (the last modification before END_TIMESTAMP). Join these back to the h_* table to retrieve the actual field values. | ||
+ | |||
+ | :Within the query, the last history records as of START and END are aliased as "old" and "new"; you can append a WHERE clause to take advantage of this. | ||
==BUGS== | ==BUGS== | ||
==SEE ALSO== | ==SEE ALSO== | ||
[[Freeside:3:Documentation:Developer/FS/Record|FS::Record]], schema.html from the base documentation | [[Freeside:3:Documentation:Developer/FS/Record|FS::Record]], schema.html from the base documentation |
Latest revision as of 06:34, 10 February 2015
Contents
NAME
FS::h_Common - History table "mixin" common base class
SYNOPSIS
package FS::h_tablename; @ISA = qw( FS::h_Common FS::tablename );
sub table { 'h_table_name'; }
sub insert { return "can't insert history records manually"; } sub delete { return "can't delete history records"; } sub replace { return "can't modify history records"; }
DESCRIPTION
FS::h_Common is intended as a "mixin" base class for history table classes to inherit from.
METHODS
- sql_h_search END_TIMESTAMP [ START_TIMESTAMP ]
- Returns an a list consisting of the "SELECT", "EXTRA_SQL", SQL fragments, a placeholder for "CACHE_OBJ" and an "AS" SQL fragment, to search for the appropriate history records created before END_TIMESTAMP and (optionally) not deleted before START_TIMESTAMP.
- sql_h_searchs END_TIMESTAMP [ START_TIMESTAMP ]
- Like sql_h_search, but limited to the single most recent record (before END_TIMESTAMP)
- sql_diff START_TIMESTAMP, END_TIMESTAMP[, WHERE]
- Returns a complete SQL statement to find all records that were changed between START_TIMESTAMP and END_TIMESTAMP. This finds only replacements, not new or deleted records.
- For each modified record, this will return one row (not two rows as in the history table) with the primary key of the record, "old_historynum" (the historynum of the last modification before START_TIMESTAMP), and "new_historynum" (the last modification before END_TIMESTAMP). Join these back to the h_* table to retrieve the actual field values.
- Within the query, the last history records as of START and END are aliased as "old" and "new"; you can append a WHERE clause to take advantage of this.
BUGS
SEE ALSO
FS::Record, schema.html from the base documentation