Compare commits
2 Commits
d704ce8c07
...
a44da62b94
Author | SHA1 | Date | |
---|---|---|---|
a44da62b94 | |||
04e7dab54e |
@ -45,10 +45,19 @@ abstract class CapacitorStorage {
|
|||||||
const GENLIC_DEFINITION = "varchar(80)";
|
const GENLIC_DEFINITION = "varchar(80)";
|
||||||
const GENLIB_DEFINITION = "varchar(255)";
|
const GENLIB_DEFINITION = "varchar(255)";
|
||||||
const GENTEXT_DEFINITION = "mediumtext";
|
const GENTEXT_DEFINITION = "mediumtext";
|
||||||
|
const GENBOOL_DEFINITION = "integer(1)";
|
||||||
const GENUUID_DEFINITION = "varchar(36)";
|
const GENUUID_DEFINITION = "varchar(36)";
|
||||||
|
|
||||||
protected static function gencol($def): string {
|
protected static function gencol($def): string {
|
||||||
if (!is_string($def)) $def = strval($def);
|
if (!is_string($def)) $def = strval($def);
|
||||||
|
$def = trim($def);
|
||||||
|
$parts = preg_split('/\s+/', $def, 2);
|
||||||
|
if (count($parts) == 2) {
|
||||||
|
$def = $parts[0];
|
||||||
|
$rest = " $parts[1]";
|
||||||
|
} else {
|
||||||
|
$rest = null;
|
||||||
|
}
|
||||||
switch ($def) {
|
switch ($def) {
|
||||||
case "serdata": $def = static::SERDATA_DEFINITION; break;
|
case "serdata": $def = static::SERDATA_DEFINITION; break;
|
||||||
case "sersum": $def = static::SERSUM_DEFINITION; break;
|
case "sersum": $def = static::SERSUM_DEFINITION; break;
|
||||||
@ -57,9 +66,10 @@ abstract class CapacitorStorage {
|
|||||||
case "genlic": $def = static::GENLIC_DEFINITION; break;
|
case "genlic": $def = static::GENLIC_DEFINITION; break;
|
||||||
case "genlib": $def = static::GENLIB_DEFINITION; break;
|
case "genlib": $def = static::GENLIB_DEFINITION; break;
|
||||||
case "gentext": $def = static::GENTEXT_DEFINITION; break;
|
case "gentext": $def = static::GENTEXT_DEFINITION; break;
|
||||||
|
case "genbool": $def = static::GENBOOL_DEFINITION; break;
|
||||||
case "genuuid": $def = static::GENUUID_DEFINITION; break;
|
case "genuuid": $def = static::GENUUID_DEFINITION; break;
|
||||||
}
|
}
|
||||||
return $def;
|
return "$def$rest";
|
||||||
}
|
}
|
||||||
|
|
||||||
const COLUMN_DEFINITIONS = [
|
const COLUMN_DEFINITIONS = [
|
||||||
@ -365,8 +375,9 @@ abstract class CapacitorStorage {
|
|||||||
$values = func::call([$channel, "getItemValues"], $item, ...$args);
|
$values = func::call([$channel, "getItemValues"], $item, ...$args);
|
||||||
if ($values === [false]) return 0;
|
if ($values === [false]) return 0;
|
||||||
|
|
||||||
$newItem = A::pop($values, "item");
|
if (array_key_exists("item", $values)) {
|
||||||
if ($newItem !== null) $item = $newItem;
|
$item = A::pop($values, "item");
|
||||||
|
}
|
||||||
|
|
||||||
$row = cl::merge(
|
$row = cl::merge(
|
||||||
$channel->getSum("item", $item),
|
$channel->getSum("item", $item),
|
||||||
|
@ -11,6 +11,7 @@ class PgsqlStorage extends CapacitorStorage {
|
|||||||
const SERTS_DEFINITION = "timestamp";
|
const SERTS_DEFINITION = "timestamp";
|
||||||
const GENSERIAL_DEFINITION = "serial primary key";
|
const GENSERIAL_DEFINITION = "serial primary key";
|
||||||
const GENTEXT_DEFINITION = "text";
|
const GENTEXT_DEFINITION = "text";
|
||||||
|
const GENBOOL_DEFINITION = "boolean";
|
||||||
const GENUUID_DEFINITION = "uuid";
|
const GENUUID_DEFINITION = "uuid";
|
||||||
|
|
||||||
function __construct($pgsql) {
|
function __construct($pgsql) {
|
||||||
|
@ -117,4 +117,18 @@ class file {
|
|||||||
}
|
}
|
||||||
return $file;
|
return $file;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static function string_reader(string $content, ?callable $func=null): MemoryStream {
|
||||||
|
$file = new MemoryStream();
|
||||||
|
$file->fwrite($content);
|
||||||
|
$file->rewind();
|
||||||
|
if ($func !== null) {
|
||||||
|
try {
|
||||||
|
$func($file);
|
||||||
|
} finally {
|
||||||
|
$file ->close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $file;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user