Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cee3b5c2d1 | ||
|
|
47e44c15cc |
@@ -1,6 +1,8 @@
|
|||||||
-- Upgrae serial to identity type
|
-- Upgrade serial to identity type
|
||||||
--
|
--
|
||||||
-- @param reclass tbl The table where the column is located
|
-- Original: https://www.enterprisedb.com/blog/postgresql-10-identity-columns-explained#section-6
|
||||||
|
--
|
||||||
|
-- @param reclass tbl The table where the column is located, prefix with 'schema.' if different schema
|
||||||
-- @param name col The column to be changed
|
-- @param name col The column to be changed
|
||||||
-- @param varchar identity_type [default=a] Allowed a, d, assigned, default
|
-- @param varchar identity_type [default=a] Allowed a, d, assigned, default
|
||||||
-- @param varchar col_type [default=''] Allowed smallint, int, bigint, int2, int4, int8
|
-- @param varchar col_type [default=''] Allowed smallint, int, bigint, int2, int4, int8
|
||||||
|
|||||||
@@ -121,6 +121,7 @@ final class CoreLibsCreateUidsTest extends TestCase
|
|||||||
* must match 7e78fe0d-59b8-4637-af7f-e88d221a7d1e
|
* must match 7e78fe0d-59b8-4637-af7f-e88d221a7d1e
|
||||||
*
|
*
|
||||||
* @covers ::uuidv4
|
* @covers ::uuidv4
|
||||||
|
* @covers ::validateUuidv4
|
||||||
* @testdox uuidv4 check that return is matching regex [$_dataName]
|
* @testdox uuidv4 check that return is matching regex [$_dataName]
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
@@ -129,13 +130,18 @@ final class CoreLibsCreateUidsTest extends TestCase
|
|||||||
{
|
{
|
||||||
$uuid = \CoreLibs\Create\Uids::uuidv4();
|
$uuid = \CoreLibs\Create\Uids::uuidv4();
|
||||||
$this->assertMatchesRegularExpression(
|
$this->assertMatchesRegularExpression(
|
||||||
'/^[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}$/',
|
'/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/',
|
||||||
$uuid
|
$uuid,
|
||||||
|
'Failed regex check'
|
||||||
|
);
|
||||||
|
$this->assertTrue(
|
||||||
|
\CoreLibs\Create\Uids::validateUuuidv4($uuid),
|
||||||
|
'Failed validate regex method'
|
||||||
|
);
|
||||||
|
$this->assertFalse(
|
||||||
|
\CoreLibs\Create\Uids::validateUuuidv4('not-a-uuidv4'),
|
||||||
|
'Failed wrong uuid validated as true'
|
||||||
);
|
);
|
||||||
// $this->assertStringMatchesFormat(
|
|
||||||
// '%4s%4s-%4s-%4s-%4s-%4s%4s%4s',
|
|
||||||
// $uuid
|
|
||||||
// );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -239,7 +239,7 @@ print "PREPARE INSERT PREVIOUS INSERTED: "
|
|||||||
|
|
||||||
print "PREPARE CURSOR RETURN:<br>";
|
print "PREPARE CURSOR RETURN:<br>";
|
||||||
foreach (['pk_name', 'count', 'query', 'returning_id'] as $key) {
|
foreach (['pk_name', 'count', 'query', 'returning_id'] as $key) {
|
||||||
print "KEY: " . $key . ': ' . $db->dbGetPrepareCursorValue('ins_test_foo', $key) . "<br>";
|
print "KEY: " . $key . ': ' . Support::prAr($db->dbGetPrepareCursorValue('ins_test_foo', $key)) . "<br>";
|
||||||
}
|
}
|
||||||
|
|
||||||
$query = <<<SQL
|
$query = <<<SQL
|
||||||
|
|||||||
@@ -52,6 +52,14 @@ print "S:UNIQID (512): " . Uids::uniqId(512) . "<br>";
|
|||||||
// uniq ids
|
// uniq ids
|
||||||
print "UNIQU ID SHORT : " . Uids::uniqIdShort() . "<br>";
|
print "UNIQU ID SHORT : " . Uids::uniqIdShort() . "<br>";
|
||||||
print "UNIQU ID LONG : " . Uids::uniqIdLong() . "<br>";
|
print "UNIQU ID LONG : " . Uids::uniqIdLong() . "<br>";
|
||||||
|
// validate
|
||||||
|
$uuidv4 = Uids::uuidv4();
|
||||||
|
if (!Uids::validateUuuidv4($uuidv4)) {
|
||||||
|
print "Invalid UUIDv4: " . $uuidv4 . "<br>";
|
||||||
|
}
|
||||||
|
if (!Uids::validateUuuidv4("foobar")) {
|
||||||
|
print "Invalid UUIDv4: hard coded<Br>";
|
||||||
|
}
|
||||||
|
|
||||||
// DEPRECATED
|
// DEPRECATED
|
||||||
/* print "D/UUIDV4: ".$basic->uuidv4()."<br>";
|
/* print "D/UUIDV4: ".$basic->uuidv4()."<br>";
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ class HSB implements Interface\CoordinatesInterface
|
|||||||
private float $B = 0.0;
|
private float $B = 0.0;
|
||||||
|
|
||||||
/** @var string color space: either ok or cie */
|
/** @var string color space: either ok or cie */
|
||||||
private string $colorspace = '';
|
private string $colorspace = ''; /** @phpstan-ignore-line */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* HSB (HSV) color coordinates
|
* HSB (HSV) color coordinates
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ class HSL implements Interface\CoordinatesInterface
|
|||||||
/** @var float lightness (luminance) */
|
/** @var float lightness (luminance) */
|
||||||
private float $L = 0.0;
|
private float $L = 0.0;
|
||||||
|
|
||||||
/** @var string color space: either ok or cie */
|
/** @var string color space: either sRGB */
|
||||||
private string $colorspace = '';
|
private string $colorspace = '';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -56,26 +56,6 @@ class Uids
|
|||||||
*/
|
*/
|
||||||
public static function uuidv4(): string
|
public static function uuidv4(): string
|
||||||
{
|
{
|
||||||
/* return sprintf(
|
|
||||||
'%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
|
|
||||||
// 32 bits for "time_low"
|
|
||||||
mt_rand(0, 0xffff),
|
|
||||||
mt_rand(0, 0xffff),
|
|
||||||
// 16 bits for "time_mid"
|
|
||||||
mt_rand(0, 0xffff),
|
|
||||||
// 16 bits for "time_hi_and_version",
|
|
||||||
// four most significant bits holds version number 4
|
|
||||||
mt_rand(0, 0x0fff) | 0x4000,
|
|
||||||
// 16 bits, 8 bits for "clk_seq_hi_res",
|
|
||||||
// 8 bits for "clk_seq_low",
|
|
||||||
// two most significant bits holds zero and one for variant DCE1.1
|
|
||||||
mt_rand(0, 0x3fff) | 0x8000,
|
|
||||||
// 48 bits for "node"
|
|
||||||
mt_rand(0, 0xffff),
|
|
||||||
mt_rand(0, 0xffff),
|
|
||||||
mt_rand(0, 0xffff)
|
|
||||||
); */
|
|
||||||
|
|
||||||
$data = random_bytes(16);
|
$data = random_bytes(16);
|
||||||
assert(strlen($data) == 16);
|
assert(strlen($data) == 16);
|
||||||
|
|
||||||
@@ -93,6 +73,20 @@ class Uids
|
|||||||
return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
|
return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* regex validate uuid v4
|
||||||
|
*
|
||||||
|
* @param string $uuidv4
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public static function validateUuuidv4(string $uuidv4): bool
|
||||||
|
{
|
||||||
|
if (!preg_match("/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/", $uuidv4)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* creates a uniq id based on lengths
|
* creates a uniq id based on lengths
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user