Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.
Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.
Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.
Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.
Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.
Byla vydána nová verze 5.4.0 programu na úpravu digitálních fotografií darktable (Wikipedie). Z novinek lze vypíchnout vylepšenou podporu Waylandu. Nejnovější darktable by měl na Waylandu fungovat stejně dobře jako na X11.
Byla vydána beta verze Linux Mintu 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.
GNU Project Debugger aneb GDB byl vydán ve verzi 17.1. Podrobný přehled novinek v souboru NEWS.
Josef Průša oznámil zveřejnění kompletních CAD souborů rámů tiskáren Prusa CORE One a CORE One L. Nejsou vydány pod obecnou veřejnou licenci GNU ani Creative Commons ale pod novou licencí OCL neboli Open Community License. Ta nepovoluje prodávat kompletní tiskárny či remixy založené na těchto zdrojích.
Nový CEO Mozilla Corporation Anthony Enzor-DeMeo tento týden prohlásil, že by se Firefox měl vyvinout v moderní AI prohlížeč. Po bouřlivých diskusích na redditu ujistil, že v nastavení Firefoxu bude existovat volba pro zakázání všech AI funkcí.
mysql> SELECT @@SESSION.sql_mode;
+----------------------------------------------------------------+
| @@SESSION.sql_mode |
+----------------------------------------------------------------+
| STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+----------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> CREATE TABLE tfull (
-> id INT NOT NULL AUTO_INCREMENT,
-> PRIMARY KEY (id)
-> ) ENGINE=InnoDB AUTO_INCREMENT = 2147483647;
Query OK, 0 rows affected (0.01 sec)
mysql> INSERT INTO tfull VALUES();
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO tfull VALUES();
ERROR 1062 (23000): Duplicate entry '2147483647' for key 'PRIMARY'
mysql> DROP TABLE tfull;
Query OK, 0 rows affected (0.01 sec)
mysql>
Ale řekl bych, že chyba může být i jiného typu...
MariaDB [test]> CREATE TABLE tfull (
-> id INT NOT NULL AUTO_INCREMENT,
-> PRIMARY KEY (id)
-> ) ENGINE=InnoDB AUTO_INCREMENT = 2147483647;
Query OK, 0 rows affected (0.06 sec)
MariaDB [test]> INSERT INTO tfull VALUES();
Query OK, 1 row affected (0.06 sec)
MariaDB [test]> INSERT INTO tfull VALUES();
ERROR 167 (22003): Out of range value for column 'id' at row 1
MariaDB [test]> alter table tfull modify id BIGINT;
Query OK, 1 row affected (0.06 sec)
Records: 1 Duplicates: 0 Warnings: 0
MariaDB [test]> INSERT INTO tfull VALUES();
Query OK, 1 row affected (0.05 sec)
MariaDB [test]> DROP TABLE tfull;
Query OK, 0 rows affected (0.06 sec)
Měl jsi si skusit ten insert provést 2×, pak by jsi si zjistil, že jsi problém nevyřešil, jen jsi vytvořil jiný (na to přijdeš hned, takže ho neodhalím
).
A když už jsme u MySQL(MariaDB) a zvolili jsme na začátku INT a ne BIGINT, tak možná je lepší postup viz níže, protože (teoreticky) 2× natáhneme čas dokud nám stačí 32 bit id a tabulka je výrazně menší rychlejší a nepotřebuje tolik paměti (pokud interval po naplnění byl měsíc, tak to nemá význam, ale pokud třeba tři roky, tak je to dost zásadní).
Já bych postupoval v tomto případě z mezikrokem takto:
mysql> CREATE TABLE tfull (
-> id INT NOT NULL AUTO_INCREMENT,
-> PRIMARY KEY (id)
-> ) ENGINE=InnoDB AUTO_INCREMENT = 2147483647;
Query OK, 0 rows affected (0.02 sec)
mysql> INSERT INTO tfull VALUES();
Query OK, 1 row affected (0.02 sec)
mysql> INSERT INTO tfull VALUES();
ERROR 1062 (23000): Duplicate entry '2147483647' for key 'PRIMARY'
mysql> ALTER TABLE tfull MODIFY id INT UNSIGNED auto_increment;
Query OK, 1 row affected (0.03 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> INSERT INTO tfull VALUES();
Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO tfull VALUES();
Query OK, 1 row affected (0.02 sec)
mysql> ALTER TABLE tfull AUTO_INCREMENT = 4294967295;
Query OK, 3 rows affected (0.01 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> INSERT INTO tfull VALUES();
Query OK, 1 row affected (0.02 sec)
mysql> INSERT INTO tfull VALUES();
ERROR 1062 (23000): Duplicate entry '4294967295' for key 'PRIMARY'
mysql> ALTER TABLE tfull MODIFY id BIGINT auto_increment;
Query OK, 4 rows affected (0.02 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> INSERT INTO tfull VALUES();
Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO tfull VALUES();
Query OK, 1 row affected (0.02 sec)
mysql> SELECT id FROM tfull;
+------------+
| id |
+------------+
| 2147483647 |
| 2147483648 |
| 2147483649 |
| 4294967295 |
| 4294967296 |
| 4294967297 |
+------------+
6 rows in set (0.00 sec)
mysql> DROP TABLE tfull;
Query OK, 0 rows affected (0.01 sec)
mysql>
Při milionu insertů za sekundu bude třeba 300tisíc let prp dosažení 9223372036854775807 (BIGINT max.).
A případné zpracování takové hodnoty/typu (BIGINT UNSIGNED) způsobuje jen (drobné) problémy ve většině jazyků a i v samotném MySQL se už musí s tímto číslem pracovat s přetypováním (implicitní konverze čísel, zjednodušeně funguje jen do rozsahu BIGINT).
Tiskni
Sdílej: