Compare commits
2 Commits
d704ce8c07
...
a44da62b94
Author | SHA1 | Date | |
---|---|---|---|
a44da62b94 | |||
04e7dab54e |
@ -45,10 +45,19 @@ abstract class CapacitorStorage {
|
||||
const GENLIC_DEFINITION = "varchar(80)";
|
||||
const GENLIB_DEFINITION = "varchar(255)";
|
||||
const GENTEXT_DEFINITION = "mediumtext";
|
||||
const GENBOOL_DEFINITION = "integer(1)";
|
||||
const GENUUID_DEFINITION = "varchar(36)";
|
||||
|
||||
protected static function gencol($def): string {
|
||||
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) {
|
||||
case "serdata": $def = static::SERDATA_DEFINITION; break;
|
||||
case "sersum": $def = static::SERSUM_DEFINITION; break;
|
||||
@ -57,9 +66,10 @@ abstract class CapacitorStorage {
|
||||
case "genlic": $def = static::GENLIC_DEFINITION; break;
|
||||
case "genlib": $def = static::GENLIB_DEFINITION; break;
|
||||
case "gentext": $def = static::GENTEXT_DEFINITION; break;
|
||||
case "genbool": $def = static::GENBOOL_DEFINITION; break;
|
||||
case "genuuid": $def = static::GENUUID_DEFINITION; break;
|
||||
}
|
||||
return $def;
|
||||
return "$def$rest";
|
||||
}
|
||||
|
||||
const COLUMN_DEFINITIONS = [
|
||||
@ -365,8 +375,9 @@ abstract class CapacitorStorage {
|
||||
$values = func::call([$channel, "getItemValues"], $item, ...$args);
|
||||
if ($values === [false]) return 0;
|
||||
|
||||
$newItem = A::pop($values, "item");
|
||||
if ($newItem !== null) $item = $newItem;
|
||||
if (array_key_exists("item", $values)) {
|
||||
$item = A::pop($values, "item");
|
||||
}
|
||||
|
||||
$row = cl::merge(
|
||||
$channel->getSum("item", $item),
|
||||
|
@ -11,6 +11,7 @@ class PgsqlStorage extends CapacitorStorage {
|
||||
const SERTS_DEFINITION = "timestamp";
|
||||
const GENSERIAL_DEFINITION = "serial primary key";
|
||||
const GENTEXT_DEFINITION = "text";
|
||||
const GENBOOL_DEFINITION = "boolean";
|
||||
const GENUUID_DEFINITION = "uuid";
|
||||
|
||||
function __construct($pgsql) {
|
||||
|
@ -117,4 +117,18 @@ class 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