From 75a42558fd2389f38aa3319c51fa64e823ae8449 Mon Sep 17 00:00:00 2001 From: Clemens Schwaighofer Date: Wed, 29 Mar 2023 10:02:20 +0900 Subject: [PATCH] CoreLibs update v8.1.2 --- www/admin/class_test.db.dbReturn.php | 20 ++++- www/admin/class_test.db.php | 40 ++++++++++ www/composer.lock | 4 +- www/vendor/composer/installed.json | 6 +- www/vendor/composer/installed.php | 6 +- .../publish/last.published | 2 +- .../corelibs-composer-all/src/DB/IO.php | 8 +- .../test/phpunit/DB/CoreLibsDBIOTest.php | 77 +++++++++++++------ 8 files changed, 125 insertions(+), 38 deletions(-) diff --git a/www/admin/class_test.db.dbReturn.php b/www/admin/class_test.db.dbReturn.php index 686e394b..8ca37fdb 100644 --- a/www/admin/class_test.db.dbReturn.php +++ b/www/admin/class_test.db.dbReturn.php @@ -67,12 +67,30 @@ $q_db_ret = "SELECT * FROM test_db_return ORDER BY uid"; RunningTime::hrRunningTime(); +$cache_flag = '[DEFAULT] NO_CACHE (0)'; +print "dbReturn '" . $cache_flag . "'/Default: " . $q_db_ret . "
"; +// 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(
+			SetVarType::setArray($db->dbGetCursorExt($q_db_ret))
+		) . "
"; + print "Run time: " . RunningTime::hrRunningTime() . "
"; +} +print "
"; + $cache_flag = 'USE_CACHE (0)'; 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); + $res = $db->dbReturn($q_db_ret, $db::USE_CACHE); print $i . ") " . $cache_flag . ": " . "res: " . (is_bool($res) ? "Bool: " . $db->log->prBl($res) : diff --git a/www/admin/class_test.db.php b/www/admin/class_test.db.php index c79b6a22..5ca62573 100644 --- a/www/admin/class_test.db.php +++ b/www/admin/class_test.db.php @@ -314,6 +314,46 @@ print "EOM STRING EXEC RETURN TEST: " . print_r( ) ) . "
"; echo "
"; +// binary insert tests +$filename = $db->dbEscapeLiteral('class_test.db.php'); +$rand_bin_uid = $db->dbEscapeLiteral(\CoreLibs\Create\Uids::uniqIdShort()); +$binary_data = $db->dbEscapeBytea(file_get_contents('class_test.db.php') ?: ''); +$query = <<dbExec($query); +$__last_insert_id = $db->dbGetInsertPK(); +print "BINARY DATA INSERT: " + . Support::printToString($status) . " |
" + . " |
" + . "PRIMARY KEY: " . Support::printToString($db->dbGetInsertPK()) . " | " + . "RETURNING EXT: " . print_r($db->dbGetReturningExt(), true) . " | " + . "RETURNING RETURN: " . print_r($db->dbGetReturningArray(), true) + . "ERROR: " . $db->dbGetLastError(true) . "
"; + +echo "*
"; +$query = <<dbExecParams($query, [$filename, $rand_bin_uid, $binary_data]); +$__last_insert_id = $db->dbGetInsertPK(); +print "BINARY DATA INSERT PARAMS: " + . Support::printToString($status) . " |
" + . " |
" + . "PRIMARY KEY: " . Support::printToString($db->dbGetInsertPK()) . " | " + . "RETURNING EXT: " . print_r($db->dbGetReturningExt(), true) . " | " + . "RETURNING RETURN: " . print_r($db->dbGetReturningArray(), true) + . "ERROR: " . $db->dbGetLastError(true) . "
"; + +echo "
"; // returning test with multiple entries // $status = $db->db_exec( diff --git a/www/composer.lock b/www/composer.lock index f62d024a..bf73809f 100644 --- a/www/composer.lock +++ b/www/composer.lock @@ -8,11 +8,11 @@ "packages": [ { "name": "egrajp/corelibs-composer-all", - "version": "dev-master", + "version": "dev-development", "dist": { "type": "path", "url": "/storage/var/www/html/developers/clemens/core_data/composer-packages/CoreLibs-Composer-All", - "reference": "4a246bec5f8e9944a77e1997f0f40c7f4f936528" + "reference": "0e6a43a2c286dcd78720287c344891db633edbfd" }, "require": { "php": ">=8.1" diff --git a/www/vendor/composer/installed.json b/www/vendor/composer/installed.json index 3c379db4..49abe737 100644 --- a/www/vendor/composer/installed.json +++ b/www/vendor/composer/installed.json @@ -2,12 +2,12 @@ "packages": [ { "name": "egrajp/corelibs-composer-all", - "version": "dev-master", - "version_normalized": "dev-master", + "version": "dev-development", + "version_normalized": "dev-development", "dist": { "type": "path", "url": "/storage/var/www/html/developers/clemens/core_data/composer-packages/CoreLibs-Composer-All", - "reference": "4a246bec5f8e9944a77e1997f0f40c7f4f936528" + "reference": "0e6a43a2c286dcd78720287c344891db633edbfd" }, "require": { "php": ">=8.1" diff --git a/www/vendor/composer/installed.php b/www/vendor/composer/installed.php index 37788099..11340130 100644 --- a/www/vendor/composer/installed.php +++ b/www/vendor/composer/installed.php @@ -11,9 +11,9 @@ ), 'versions' => array( 'egrajp/corelibs-composer-all' => array( - 'pretty_version' => 'dev-master', - 'version' => 'dev-master', - 'reference' => '4a246bec5f8e9944a77e1997f0f40c7f4f936528', + 'pretty_version' => 'dev-development', + 'version' => 'dev-development', + 'reference' => '0e6a43a2c286dcd78720287c344891db633edbfd', 'type' => 'library', 'install_path' => __DIR__ . '/../egrajp/corelibs-composer-all', 'aliases' => array(), diff --git a/www/vendor/egrajp/corelibs-composer-all/publish/last.published b/www/vendor/egrajp/corelibs-composer-all/publish/last.published index 8104cabd..0e791524 100644 --- a/www/vendor/egrajp/corelibs-composer-all/publish/last.published +++ b/www/vendor/egrajp/corelibs-composer-all/publish/last.published @@ -1 +1 @@ -8.1.0 +8.1.1 diff --git a/www/vendor/egrajp/corelibs-composer-all/src/DB/IO.php b/www/vendor/egrajp/corelibs-composer-all/src/DB/IO.php index 8f651593..f54cc823 100644 --- a/www/vendor/egrajp/corelibs-composer-all/src/DB/IO.php +++ b/www/vendor/egrajp/corelibs-composer-all/src/DB/IO.php @@ -1821,7 +1821,7 @@ class IO * Wrapper for dbReturnParams * * @param string $query Query string - * @param int $cache reset status: default: USE_CACHE + * @param int $cache reset status: default: NO_CACHE * USE_CACHE/0: normal read from cache on second run * READ_NEW/1: write to cache, clean before new run * CLEAR_CACHE/2: write cache, clean after finished @@ -1833,7 +1833,7 @@ class IO */ public function dbReturn( string $query, - int $cache = self::USE_CACHE, + int $cache = self::NO_CACHE, bool $assoc_only = false ): array|false { return $this->dbReturnParams($query, [], $cache, $assoc_only); @@ -1856,7 +1856,7 @@ class IO * * @param string $query Query string * @param array $params Query parameters - * @param int $cache reset status: default: USE_CACHE + * @param int $cache reset status: default: NO_CACHE * USE_CACHE/0: normal read from cache on second run * READ_NEW/1: write to cache, clean before new run * CLEAR_CACHE/2: write cache, clean after finished @@ -1868,7 +1868,7 @@ class IO public function dbReturnParams( string $query, array $params = [], - int $cache = self::USE_CACHE, + int $cache = self::NO_CACHE, bool $assoc_only = false ): array|false { $this->__dbErrorReset(); diff --git a/www/vendor/egrajp/corelibs-composer-all/test/phpunit/DB/CoreLibsDBIOTest.php b/www/vendor/egrajp/corelibs-composer-all/test/phpunit/DB/CoreLibsDBIOTest.php index 1a052255..0ee6e878 100644 --- a/www/vendor/egrajp/corelibs-composer-all/test/phpunit/DB/CoreLibsDBIOTest.php +++ b/www/vendor/egrajp/corelibs-composer-all/test/phpunit/DB/CoreLibsDBIOTest.php @@ -2142,7 +2142,7 @@ final class CoreLibsDBIOTest extends TestCase return [ // *** READ STEP BY STEP // default cache: USE_CACHE - 'valid select, default cache settings' => [ + 'valid select, default cache settings (NO_CACHE)' => [ // 0-3 $read_query, null, @@ -2156,9 +2156,7 @@ final class CoreLibsDBIOTest extends TestCase // check cursor_ext [ 'cursor' => 'PgSql\Result', - 'data' => [ - 0 => $row_a, - ], + 'data' => [], 'field_names' => [ 'row_int', 'uid' @@ -2173,9 +2171,9 @@ final class CoreLibsDBIOTest extends TestCase 'query' => $read_query, 'params' => [], 'read_rows' => 1, - 'cache_flag' => \CoreLibs\DB\IO::USE_CACHE, + 'cache_flag' => \CoreLibs\DB\IO::NO_CACHE, 'assoc_flag' => false, - 'cached' => true, + 'cached' => false, 'finished' => false, 'read_finished' => false, 'db_read_finished' => false, @@ -2190,10 +2188,7 @@ final class CoreLibsDBIOTest extends TestCase ], 'cursor' => [ 'cursor' => 'PgSql\Result', - 'data' => [ - 0 => $row_a, - 1 => $row_b, - ], + 'data' => [], 'field_names' => [ 'row_int', 'uid' @@ -2208,9 +2203,9 @@ final class CoreLibsDBIOTest extends TestCase 'query' => $read_query, 'params' => [], 'read_rows' => 2, - 'cache_flag' => \CoreLibs\DB\IO::USE_CACHE, + 'cache_flag' => \CoreLibs\DB\IO::NO_CACHE, 'assoc_flag' => false, - 'cached' => true, + 'cached' => false, 'finished' => false, 'read_finished' => true, 'db_read_finished' => true, @@ -2221,10 +2216,7 @@ final class CoreLibsDBIOTest extends TestCase 'data' => false, 'cursor' => [ 'cursor' => 1, - 'data' => [ - 0 => $row_a, - 1 => $row_b, - ], + 'data' => [], 'field_names' => [ 'row_int', 'uid' @@ -2239,9 +2231,9 @@ final class CoreLibsDBIOTest extends TestCase 'query' => $read_query, 'params' => [], 'read_rows' => 2, - 'cache_flag' => \CoreLibs\DB\IO::USE_CACHE, + 'cache_flag' => \CoreLibs\DB\IO::NO_CACHE, 'assoc_flag' => false, - 'cached' => true, + 'cached' => false, 'finished' => true, 'read_finished' => true, 'db_read_finished' => true, @@ -2811,13 +2803,50 @@ final class CoreLibsDBIOTest extends TestCase ], // *** READ AS LOOP // from here on a complex read all full tests - 'valid select, full read DEFAULT CACHE' => [ + 'valid select, full read, default cache settings (NO CACHE)' => [ $read_query, null, null, null, [$row_a, $row_b,], false, + [ + 'cursor' => 1, + 'data' => [], + 'field_names' => [ + 'row_int', + 'uid' + ], + 'field_types' => [ + 'int4', + 'varchar' + ], + 'num_fields' => 2, + 'num_rows' => 2, + 'pos' => 0, + 'query' => $read_query, + 'params' => [], + 'read_rows' => 2, + 'cache_flag' => \CoreLibs\DB\IO::NO_CACHE, + 'assoc_flag' => false, + 'cached' => false, + 'finished' => true, + 'read_finished' => true, + 'db_read_finished' => true, + ], + [], + '', + '', + $insert_query + ], + // USE CACHE + 'valid select, full read, USE CACHE' => [ + $read_query, + null, + \CoreLibs\DB\IO::USE_CACHE, + null, + [$row_a, $row_b,], + false, [ 'cursor' => 1, 'data' => [ @@ -2851,7 +2880,7 @@ final class CoreLibsDBIOTest extends TestCase $insert_query ], // READ_NEW - 'valid select, full read READ NEW' => [ + 'valid select, full read, READ NEW' => [ $read_query, null, \CoreLibs\DB\IO::READ_NEW, @@ -2891,7 +2920,7 @@ final class CoreLibsDBIOTest extends TestCase $insert_query ], // CLEAR_CACHE - 'valid select, full read CLEAR CACHE' => [ + 'valid select, full read, CLEAR CACHE' => [ $read_query, null, \CoreLibs\DB\IO::CLEAR_CACHE, @@ -2928,7 +2957,7 @@ final class CoreLibsDBIOTest extends TestCase '', $insert_query ], - 'valid select, full read NO CACHE' => [ + 'valid select, full read, NO CACHE' => [ $read_query, null, \CoreLibs\DB\IO::NO_CACHE, @@ -3070,7 +3099,7 @@ final class CoreLibsDBIOTest extends TestCase * @covers ::dbCursorPos * @covers ::dbCursorNumRows * @dataProvider dbReturnProvider - * @testdox dbReturn Read Frist $read_first_only only and cache $flag_cache and assoc $flag_assoc with (Warning: $warning/Error: $error) [$_dataName] + * @testdox dbReturn Read First $read_first_only only and cache $flag_cache and assoc $flag_assoc with (Warning: $warning/Error: $error) [$_dataName] * * @param string $query * @param array|null $params @@ -4358,7 +4387,7 @@ final class CoreLibsDBIOTest extends TestCase // NOTE if there are different INSERTS before the primary keys // will not match anymore. Must be updated by hand // IMPORTANT: if this is stand alone the primary key will not match and fail - $table_with_primary_key_id = 66; + $table_with_primary_key_id = 68; // 0: query + returning // 1: params // 1: pk name for db exec