$passw = uc crypt $passw, hex Settings->CIPHER_KEY;
#CheckTables will return 1 if it was an logout set in config table.
- if(&checkCreateTables()==0){
+ if(checkCreateTables()==0){
$session->param('alias', $alias);
$session->param('passw', $passw);
$session->param('db_source', Settings::dbSrc());
# From v.1.6 view use server side views, for pages and correct record by ID and PID lookups.
# This should make queries faster, less convulsed, and log renumeration less needed for accurate pagination.
if(!$curr_tables{'VW_LOG'}) {
- $rv = $db->do(&Settings::createVW_LOGStmt);
+ $rv = $db->do(Settings::createVW_LOGStmt());
}
if(!$curr_tables{'CAT'}) {
- $db->do(&Settings::createCATStmt);
+ $db->do(Settings::createCATStmt());
$changed = 1;
}else{
# If empty something happened to it. It shouldn't be EMPTY!
@lines = split '\n', $content;
close $fh;
- my $insConfig = $db->prepare('INSERT INTO CONFIG (NAME,VALUE,DESCRIPTION) VALUES (?,?,?)');
- my $insCat = $db->prepare('INSERT INTO CAT VALUES (?,?,?)');
- $db->begin_work();
+ my $cnfIns = 'INSERT INTO CONFIG (ID,NAME,VALUE,DESCRIPTION) VALUES (?,?,?,?)'; #for silly bckwrds compatbl;
+ $cnfIns = 'INSERT INTO CONFIG (NAME,VALUE,DESCRIPTION) VALUES (?,?,?)' if(Settings::isProgressDB());
+ my $insCnf = $db->prepare($cnfIns);
+ my $insCat = $db->prepare('INSERT INTO CAT VALUES (?,?,?)');
+ $db->begin_work();
foreach my $line (@lines) {
last if ($line =~ /<MIG<>/);#Not doing it with CNF1.0
$inData = 1;
if(!@arr) {
$debug .= "conf.ins->".$name.",".$value.",".$tick[1]."\n";
- $insConfig->execute($name,$value,$tick[1]);
+ if(Settings::isProgressDB()) {$insCnf->execute($name,$value,$tick[1])}
+ else{$insCnf->execute($id,$name,$value,$tick[1])}
}
}
use constant CIPHER_KEY => '95d7a85ba891da';
#DEFAULT SETTINGS HERE!
-our $RELEASE_VER = '2.0';
+our $RELEASE_VER = '2.1';
our $TIME_ZONE = 'Australia/Sydney';
our $LANGUAGE = 'English';
our $PRC_WIDTH = '60';
sub createCONFIGStmt {
-return qq(
+if($IS_PG_DB){qq(
CREATE TABLE CONFIG(
- ID integer NOT NULL UNIQUE GENERATED BY DEFAULT AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
+ ID INT NOT NULL UNIQUE GENERATED BY DEFAULT AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
NAME VARCHAR(16) UNIQUE,
VALUE VARCHAR(28),
DESCRIPTION VARCHAR(128),
);
CREATE INDEX idx_config_name ON CONFIG (NAME);
)}
+
+return qq(
+ CREATE TABLE CONFIG(
+ ID INT PRIMARY KEY NOT NULL,
+ NAME VCHAR(16) UNIQUE,
+ VALUE VCHAR(28),
+ DESCRIPTION VCHAR(128)
+ );
+ CREATE INDEX idx_config_name ON CONFIG (NAME);
+)
+}
sub createCATStmt {
if($IS_PG_DB){
return qq(
CREATE TABLE CAT(
- ID INT PRIMARY UNIQUE KEY NOT NULL,
+ ID INT PRIMARY KEY NOT NULL,
NAME VARCHAR(16),
DESCRIPTION VARCHAR(225)
);
sub createNOTEStmt {
- return qq(CREATE TABLE NOTES (LID INTEGER PRIMARY KEY NOT NULL, DOC TEXT);)
+ return qq(CREATE TABLE NOTES (LID INT PRIMARY KEY NOT NULL, DOC TEXT);)
}
sub createLOGCATSREFStmt {
if($IS_PG_DB){
return qq(
CREATE TABLE LOGCATSREF (
- LID INTEGER NOT NULL,
+ LID INT NOT NULL,
CID INT NOT NULL,
primary key(LID)
);
# CONSTRAINT fk_cats FOREIGN KEY(CID) REFERENCES CAT(ID) ON DELETE CASCADE
return qq(
CREATE TABLE LOGCATSREF (
- LID INTEGER NOT NULL,
+ LID INT NOT NULL,
CID INT NOT NULL,
FOREIGN KEY (LID) REFERENCES LOG(ID),
FOREIGN KEY (CID) REFERENCES CAT(ID)
#Renumerate Log! Copy into temp. table.
my $sql;
selectRecords($db,'CREATE TABLE life_log_temp_table AS SELECT * FROM LOG;');
+ my $CI = 'rowid'; $CI = 'ID' if $IS_PG_DB;
#update notes table with new log id only for reference sake.
- my $st = selectRecords($db, 'SELECT ID, DATE FROM LOG WHERE ID_RTF > 0 ORDER BY DATE;');
+ my $st = selectRecords($db, "SELECT $CI, DATE FROM LOG WHERE ID_RTF > 0 ORDER BY DATE;");
while(my @row =$st->fetchrow_array()) {
my $sql_date = $row[1];
#$sql_date =~ s/T/ /;
$sql_date = DateTime::Format::SQLite->parse_datetime($sql_date);
- $sql = "SELECT ID, DATE FROM life_log_temp_table WHERE ID_RTF > 0 AND DATE = '".$sql_date."';";
+ $sql = "SELECT $CI, DATE FROM life_log_temp_table WHERE ID_RTF > 0 AND DATE = '".$sql_date."';";
my @new = selectRecords($db, $sql)->fetchrow_array();
if(scalar @new > 0){
try{#can fail here, for various reasons.
# Delete any possible orphaned Notes records.
$st->finish();
- $st = selectRecords($db, "SELECT LID, LOG.ID from NOTES LEFT JOIN LOG ON
- NOTES.LID = LOG.ID WHERE LOG.ID is NULL;");
+ $st = selectRecords($db, "SELECT LID, LOG.$CI from NOTES LEFT JOIN LOG ON NOTES.LID = LOG.$CI WHERE LOG.$CI is NULL;");
while($st->fetchrow_array()) {
$db->do("DELETE FROM NOTES WHERE LID=".$_[0].";")
}
$st->finish();
- $db->do('DROP TABLE LOG CASCADE;');
+ if($IS_PG_DB){$db->do('DROP TABLE LOG CASCADE;');}else{$db->do('DROP TABLE LOG;');}
+
$db->do(&createLOGStmt);
$db->do('INSERT INTO LOG (ID_CAT, ID_RTF, DATE, LOG, AMOUNT,AFLAG,STICKY)
SELECT ID_CAT, ID_RTF, DATE, LOG, AMOUNT, AFLAG, STICKY FROM life_log_temp_table ORDER by DATE;');