tualo / ds
Datasets Component for tualo office
Requires
- phpoffice/phpspreadsheet: ^5.7
- phpseclib/phpseclib: ^3.0
- ramsey/uuid: ~4.9.0
- tualo/dsx: ^1.0.5
- tualo/extjscmplr: ^1.0.6
- tualo/monacoeditor: ^1.0
- tualo/systemfiles: ^1.0.0
- tualo/tualo-ext-shim: ^1.0.1
- tualo/tualojs: ^1.0
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
- dev-main
- 1.8.178
- 1.8.177
- 1.8.176
- 1.8.175
- 1.8.174
- 1.8.173
- 1.8.172
- 1.8.171
- 1.8.170
- 1.8.169
- 1.8.168
- 1.8.167
- 1.8.166
- 1.8.165
- 1.8.164
- 1.8.163
- 1.8.162
- 1.8.161
- 1.8.160
- 1.8.159
- 1.8.158
- 1.8.157
- 1.8.156
- 1.8.155
- 1.8.154
- 1.8.153
- 1.8.152
- 1.8.151
- 1.8.150
- 1.8.149
- 1.8.148
- 1.8.147
- 1.8.146
- 1.8.145
- 1.8.144
- 1.8.143
- 1.8.142
- 1.8.141
- 1.8.140
- 1.8.139
- 1.8.138
- 1.8.137
- 1.8.136
- 1.8.135
- 1.8.134
- 1.8.133
- 1.8.132
- 1.8.131
- 1.8.130
- 1.8.129
- 1.8.128
- 1.8.127
- 1.8.126
- 1.8.125
- 1.8.124
- 1.8.123
- 1.8.122
- 1.8.121
- 1.8.120
- 1.8.119
- 1.8.118
- 1.8.117
- 1.8.116
- 1.8.115
- 1.8.114
- 1.8.113
- 1.8.112
- 1.8.111
- 1.8.110
- 1.8.109
- 1.8.108
- 1.8.107
- 1.8.106
- 1.8.105
- 1.8.104
- 1.8.103
- 1.8.102
- 1.8.101
- 1.8.100
- 1.8.99
- 1.8.98
- 1.8.97
- 1.8.96
- 1.8.95
- 1.8.94
- 1.8.93
- 1.8.92
- 1.8.91
- 1.8.90
- 1.8.89
- 1.8.88
- 1.8.87
- 1.8.86
- 1.8.85
- 1.8.84
- 1.8.83
- 1.8.82
- 1.8.81
- 1.8.80
- 1.8.79
- 1.8.78
- 1.8.77
- 1.8.76
- 1.8.75
- 1.8.74
- 1.8.73
- 1.8.72
- 1.8.71
- 1.8.70
- 1.8.69
- 1.8.68
- 1.8.67
- 1.8.66
- 1.8.65
- 1.8.64
- 1.8.63
- 1.8.62
- 1.8.61
- 1.8.60
- 1.8.59
- 1.8.58
- 1.8.57
- 1.8.56
- 1.8.55
- 1.8.54
- 1.8.53
- 1.8.52
- 1.8.51
- 1.8.50
- 1.8.49
- 1.8.48
- 1.8.47
- 1.8.46
- 1.8.45
- 1.8.44
- 1.8.43
- 1.8.42
- 1.8.41
- 1.8.40
- 1.8.39
- 1.8.38
- 1.8.37
- 1.8.36
- 1.8.35
- 1.8.34
- 1.8.33
- 1.8.32
- 1.8.31
- 1.8.30
- 1.8.29
- 1.8.28
- 1.8.27
- 1.8.26
- 1.8.25
- 1.8.24
- 1.8.23
- 1.8.22
- 1.8.21
- 1.8.20
- 1.8.19
- 1.8.18
- 1.8.17
- 1.8.16
- 1.8.15
- 1.8.14
- 1.8.13
- 1.8.12
- 1.8.11
- 1.8.10
- 1.8.9
- 1.8.8
- 1.8.7
- 1.8.6
- 1.8.5
- 1.8.4
- 1.8.3
- 1.8.2
- 1.8.1
- 1.8.0
- 1.7.14
- 1.7.13
- 1.7.12
- 1.7.11
- 1.7.10
- 1.7.9
- 1.7.8
- 1.7.7
- 1.7.6
- 1.7.5
- 1.7.4
- 1.7.3
- 1.7.2
- 1.7.1
- 1.7.0
- 1.6.0
- 1.5.38
- 1.5.37
- 1.5.36
- 1.5.35
- 1.5.34
- 1.5.33
- 1.5.32
- 1.5.31
- 1.5.30
- 1.5.29
- 1.5.28
- 1.5.27
- 1.5.26
- 1.5.25
- 1.5.24
- 1.5.23
- 1.5.22
- 1.5.21
- 1.5.20
- 1.5.19
- 1.5.18
- 1.5.17
- 1.5.16
- 1.5.15
- 1.5.14
- 1.5.13
- 1.5.12
- 1.5.11
- 1.5.10
- 1.5.9
- 1.5.8
- 1.5.7
- 1.5.6
- 1.5.5
- 1.5.4
- 1.5.3
- 1.5.2
- 1.5.1
- 1.5.0
- 1.4.17
- 1.4.16
- 1.4.15
- 1.4.14
- 1.4.13
- 1.4.12
- 1.4.11
- 1.4.10
- 1.4.9
- 1.4.8
- 1.4.7
- 1.4.6
- 1.4.5
- 1.4.4
- 1.4.3
- 1.4.2
- 1.4.1
- 1.4.0
- 1.3.0
- 1.2.1
- 1.2.0
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
This package is auto-updated.
Last update: 2026-11-03 06:29:11 UTC
README
Datenstämme, Verwalten von Tabellen und Zugriffsrechten
DSX-Abhaengigkeit
Die PHP-Lese- und Schreibwege benoetigen tualo/dsx ab Version 1.0.5. Bei Anwendungen
mit composer.lock muss die Abhaengigkeit im Lockfile aktualisiert und
anschliessend installiert werden; composer dump-autoload allein aktualisiert
das Paket nicht. Falls der gemeinsame Logger wegen einer veralteten
DSX-Installation fehlt, wird der urspruengliche Fehler mit einem Hinweis auf
die erforderliche Paketversion protokolliert.
DSTable-Fehlerdiagnose
Abgefangene Fehler in read, insert, update und delete werden ueber
TualoApplication::logger('dstable')->error(...) protokolliert. Der bestehende
Fehlerstatus und die Rueckgabewerte bleiben unveraendert.
Der Logkontext enthaelt Operation, Tabellenname, konfiguriertes Schema, Exception-Kette sowie bei verfuegbarer mysqli-Verbindung Fehlernummer, SQLSTATE, Verbindungs-ID und Verbindungsziel. Der letzte Statement-Praefix zeigt nur den SQL-Befehl beziehungsweise den CALL-Routinennamen, nicht die SQL-Parameter. Request-Inhalte, Filterwerte und Datensaetze werden nicht zusaetzlich geloggt; die originale Fehlermeldung kann allerdings vom Datenbankserver genannte Werte enthalten.
Wenn die Verbindung verfuegbar ist, wird der Galera-Hostname mit
SELECT @@hostname ermittelt; ein Fehler dabei wird im Logkontext festgehalten.
Waehrend eines ungepufferten Reads wird diese Abfrage nicht ausgefuehrt.
Das konfigurierte Schema ist kein Nachweis fuer das aktuell ausgewaehlte Schema;
das Verbindungsziel ist bei HAProxy kein Nachweis fuer den tatsaechlichen
Backend-Knoten.
Dateiausgabe und Log-Level richten sich nach der zentralen Logger-Konfiguration.
Die DS-Routen geben bei Fehlern explizit success: false und msg zurueck,
auch wenn ein nachgelagerter Read nach einem Schreibvorgang fehlschlaegt.
Ein solcher Fehler bedeutet nicht, dass der Schreibvorgang zurueckgerollt wurde.
Direkt in den Routen abgefangene Exceptions werden ebenfalls im Kanal dstable
protokolliert. Der Einzelabruf prueft den DSTable-Fehlerstatus und fuehrt nur
einen Read aus; SQL-Statements werden dort nicht als Fehlerantwort ausgegeben.
Die Fehlerprotokollierung laesst sich ohne Datenbank mit
php tests/ReadErrorLoggingTest.php und
php tests/MissingDsxErrorLoggingTest.php pruefen.
MariaDB und group_concat_max_len
Die Prozedur dsx_rest_api_get setzt group_concat_max_len auf 173741824.
Dieser Wert gilt fuer die anschliessende Datenabfrage von DSTable und
DSReadRoute und bleibt wie bisher auf der Verbindung bestehen. PHP stellt
keinen vorherigen Wert wieder her. Der Export setzt vor dem Prozeduraufruf
keinen zusaetzlichen Maximalwert.
In der untersuchten MariaDB-11.8.9-Umgebung trat das Problem mit leeren
JSON_ARRAYAGG-View-Ergebnissen beim Erreichen bzw. Ueberschreiten des
Maximalwerts auf. Der bisherige Wert 4294967295 liegt ueber dem dort
zulaessigen Maximum von 1073741824. Die geaenderte SQL-Prozedur muss auch in
der Datenbank installiert werden; ein Austausch der PHP-Dateien allein aendert
sie nicht.
Auch ein kleinerer Wert muss ausreichend Platz fuer die benoetigten Aggregate
bieten: MariaDB-Warnung 1260 wegen eines abgeschnittenen GROUP_CONCAT- oder
JSON_ARRAYAGG-Ergebnisses wird beim Legacy-Read als Fehler gemeldet und ueber
DSTable bzw. die Routen protokolliert.
Der Regressionstest fuer den PHP-Leseweg ist
php tests/DSReadRouteGroupConcatTest.php. Fuer den
Integrationstest tests/DSReadRouteGroupConcatIntegrationTest.php muessen
DS_TEST_MYSQL_HOST und DS_TEST_MYSQL_PORT auf einen isolierten Testserver
zeigen; optional koennen DS_TEST_MYSQL_USER, DS_TEST_MYSQL_PASSWORD und
DS_TEST_BSC_SRC sowie DS_TEST_DSX_SRC angegeben werden. Der Test erstellt
und entfernt ein eigenes Testschema und benoetigt dafuer entsprechende
Datenbankrechte. Ohne Pfadangaben werden die benachbarten Pakete ../bsc/src
und ../dsx/src verwendet.