diff --git a/www/admin/class_test.db.dbReturn.php b/www/admin/class_test.db.dbReturn.php
new file mode 100644
index 00000000..aa4e2440
--- /dev/null
+++ b/www/admin/class_test.db.dbReturn.php
@@ -0,0 +1,140 @@
+ BASE . LOG,
+ 'file_id' => $LOG_FILE_ID,
+ // add file date
+ 'print_file_date' => true,
+ // set debug and print flags
+ 'debug_all' => $DEBUG_ALL ?? false,
+ 'echo_all' => $ECHO_ALL ?? false,
+ 'print_all' => $PRINT_ALL ?? false,
+]);
+// db connection and attach logger
+$db = new CoreLibs\DB\IO(DB_CONFIG, $log);
+$db->log->debug('START', '=============================>');
+
+$PAGE_NAME = 'TEST CLASS: DB dbReturn';
+print "";
+print "
" . $PAGE_NAME . "";
+print "";
+print '';
+print '';
+print '' . $PAGE_NAME . '
';
+
+print "LOGFILE NAME: " . $db->log->getSetting('log_file_name') . "
";
+print "LOGFILE ID: " . $db->log->getSetting('log_file_id') . "
";
+print "DBINFO: " . $db->dbInfo() . "
";
+
+// DB client encoding
+print "DB client encoding: " . $db->dbGetEncoding() . "
";
+print "DB search path: " . $db->dbGetSchema() . "
";
+
+// SELECT read tests with dbReturn and cache values
+print "
";
+print "dbReturn CACHE tests
";
+// DATA has two rows for reading
+// delete and repare base data
+$db->dbExec("DELETE FROM test_db_return");
+$db->dbExec("INSERT INTO test_db_return (uid, data) VALUES ('A1', 'Test A'), ('B1', 'Test B')");
+// read query to use
+$q_db_ret = "SELECT * FROM test_db_return ORDER BY uid";
+
+RunningTime::hrRunningTime();
+
+$cache_flag = 'USE_CACHE';
+print "dbReturn '" . $cache_flag . "'/Default: " . $q_db_ret . "
";
+// SINGLE read on multi row return
+// Do twice
+for ($i = 1; $i <= 6; $i++) {
+ $res = $db->dbReturn($q_db_ret);
+ print $i . ") " . $cache_flag . ": "
+ . "res: " . (is_bool($res) ?
+ "Bool: " . $db->log->prBl($res) :
+ (is_array($res) ?
+ "Array: " . $db->log->prBl(is_array($res)) : '{-}')
+ ) . ", "
+ . "cursor_ext: " . Support::printAr($db->dbGetCursorExt($q_db_ret)) . "
";
+ print "Run time: " . RunningTime::hrRunningTime() . "
";
+}
+// reset all read data
+$db->dbCacheReset($q_db_ret);
+echo "
";
+$cache_flag = 'CLEAR_CACHE';
+print "dbReturn '" . $cache_flag . "': " . $q_db_ret . "
";
+// NO CACHE
+for ($i = 1; $i <= 6; $i++) {
+ $res = $db->dbReturn($q_db_ret, $db::CLEAR_CACHE);
+ print $i . ") " . $cache_flag . ": "
+ . "res: " . (is_bool($res) ?
+ "Bool: " . $db->log->prBl($res) :
+ (is_array($res) ?
+ "Array: " . $db->log->prBl(is_array($res)) : '{-}')
+ ) . ", "
+ . "cursor_ext: " . Support::printAr($db->dbGetCursorExt($q_db_ret)) . "
";
+ print "Run time: " . RunningTime::hrRunningTime() . "
";
+}
+// reset all read data
+$db->dbCacheReset($q_db_ret);
+echo "
";
+$cache_flag = 'READ_NEW';
+print "dbReturn '" . $cache_flag . "': " . $q_db_ret . "
";
+// NO CACHE
+for ($i = 1; $i <= 6; $i++) {
+ $res = $db->dbReturn($q_db_ret, $db::READ_NEW);
+ print $i . ") " . $cache_flag . ": "
+ . "res: " . (is_bool($res) ?
+ "Bool: " . $db->log->prBl($res) :
+ (is_array($res) ?
+ "Array: " . $db->log->prBl(is_array($res)) : '{-}')
+ ) . ", "
+ . "cursor_ext: " . Support::printAr($db->dbGetCursorExt($q_db_ret)) . "
";
+ print "Run time: " . RunningTime::hrRunningTime() . "
";
+}
+// reset all read data
+$db->dbCacheReset($q_db_ret);
+echo "
";
+$cache_flag = 'NO_CACHE';
+print "dbReturn '" . $cache_flag . "': " . $q_db_ret . "
";
+// NO CACHE
+for ($i = 1; $i <= 6; $i++) {
+ $res = $db->dbReturn($q_db_ret, $db::NO_CACHE);
+ print $i . ") " . $cache_flag . ": "
+ . "res: " . (is_bool($res) ?
+ "Bool: " . $db->log->prBl($res) :
+ (is_array($res) ?
+ "Array: " . $db->log->prBl(is_array($res)) : '{-}')
+ ) . ", "
+ . "cursor_ext: " . Support::printAr($db->dbGetCursorExt($q_db_ret)) . "
";
+ print "Run time: " . RunningTime::hrRunningTime() . "
";
+}
+// reset all data
+$db->dbCacheReset($q_db_ret);
+print "
";
+print "Overall Run time: " . RunningTime::hrRunningTimeFromStart() . "
";
+
+// __END__
diff --git a/www/admin/class_test.db.php b/www/admin/class_test.db.php
index 8c21987d..a6cd2662 100644
--- a/www/admin/class_test.db.php
+++ b/www/admin/class_test.db.php
@@ -44,6 +44,7 @@ print "";
print "" . $PAGE_NAME . "";
print "";
print '';
+print '';
print '' . $PAGE_NAME . '
';
print "LOGFILE NAME: " . $db->log->getSetting('log_file_name') . "
";
@@ -72,6 +73,8 @@ $db->dbSetEncoding('SJIS');
print "ENCODING TEST: " . $db->dbVersionInfo('client_encoding') . "/" . $db->dbGetEncoding() . "
";
$db->dbResetEncoding();
+// TEST CACHE READS
+
$res = $db->dbReturn("SELECT * FROM max_test");
print "DB RETURN ROWS: " . $db->dbGetNumRows() . "
";
@@ -97,6 +100,12 @@ print "NO CACHED DATA: " . print_r($db->dbGetCursorExt(), true) . "
";
// }
+// dbReturn tests on separate page
+print "
";
+print "dbReturn CACHE tests
";
+print 'Class Test DB dbReturn
';
+print "
";
+
print "";
print "SOCKET: " . pg_socket($db->dbGetDbh()) . "
";
@@ -182,7 +191,6 @@ print "UPDATE WITH PK " . $last_insert_pk
. "RETURNING EXT: " . print_r($db->dbGetReturningExt(), true) . " | "
. "RETURNING ARRAY: " . print_r($db->dbGetReturningArray(), true) . "
";
-
// INSERT WITH NO RETURNING
$status = $db->dbExec("INSERT INTO test_foobar (type, integer) VALUES ('WITHOUT DATA', 456)");
print "INSERT WITH NO PRIMARY KEY NO RETURNING STATUS: " . Support::printToString($status) . " |
"
@@ -222,7 +230,6 @@ if (
}
}
-
# db write class test
$table = 'test_foo';
print "TABLE META DATA: " . DgS::printAr($db->dbShowTableMetaData($table)) . "
";
diff --git a/www/admin/class_test.php b/www/admin/class_test.php
index 37be6278..695ad5d6 100644
--- a/www/admin/class_test.php
+++ b/www/admin/class_test.php
@@ -54,6 +54,7 @@ print "TEST CLASS";
print "";
print '';
+print '';
print '';
print '';
print '';
@@ -75,6 +76,7 @@ print ''
print '';
print '';
print '';
+print '';
print '';
print '';
print '';