abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:44 | Nová verze

    Tor Browser, tj. fork webového prohlížeče Mozilla Firefox s integrovaným klientem sítě Tor přednastavený tak, aby přes tuto síť bezpečně komunikoval, byl vydán ve verzi 15.0. Postaven je na Firefoxu ESR 140.

    Ladislav Hagara | Komentářů: 0
    včera 16:44 | Nová verze

    Bylo oznámeno (cs) vydání Fedora Linuxu 43. Ve finální verzi vychází šest oficiálních edic: Fedora Workstation a Fedora KDE Plasma Desktop pro desktopové, Fedora Server pro serverové, Fedora IoT pro internet věcí, Fedora Cloud pro cloudové nasazení a Fedora CoreOS pro ty, kteří preferují neměnné systémy. Vedle nich jsou k dispozici také další atomické desktopy, spiny a laby. Podrobný přehled novinek v samostatných článcích na stránkách Fedora Magazinu: Fedora Workstation, Fedora KDE Plasma Desktop, Fedora Silverblue a Fedora Atomic Desktops.

    Ladislav Hagara | Komentářů: 0
    včera 15:22 | IT novinky

    Elon Musk oznámil (𝕏) spuštění internetové encyklopedie Grokipedia (Wikipedia). Zatím ve verzi 0.1. Verze 1.0 prý bude 10x lepší, ale i ve verzi 0.1 je podle Elona Muska již lepší než Wikipedia.

    Ladislav Hagara | Komentářů: 10
    včera 05:44 | Komunita

    PSF (Python Software Foundation) po mnoha měsících práce získala grant ve výši 1,5 milionu dolarů od americké vládní NSF (National Science Foundation) v rámci programu "Bezpečnost, ochrana a soukromí open source ekosystémů" na zvýšení bezpečnosti Pythonu a PyPI. PSF ale nesouhlasí s předloženou podmínkou grantu, že během trvání finanční podpory nebude žádným způsobem podporovat diverzitu, rovnost a inkluzi (DEI). PSF má diverzitu přímo ve svém poslání (Mission) a proto grant odmítla.

    Ladislav Hagara | Komentářů: 22
    včera 04:55 | Nová verze

    Balík nástrojů Rust Coreutils / uutils coreutils, tj. nástrojů z GNU Coreutils napsaných v programovacím jazyce Rust, byl vydán ve verzi 0.3.0. Z 634 testů kompatibility Rust Coreutils s GNU Coreutils bylo úspěšných 532, tj. 83,91 %. V Ubuntu 25.10 se již používá Rust Coreutils místo GNU Coreutils, což může přinášet problémy, viz například nefunkční automatická aktualizace.

    Ladislav Hagara | Komentářů: 0
    27.10. 21:00 | IT novinky

    Od 3. listopadu 2025 budou muset nová rozšíření Firefoxu specifikovat, zda shromažďují nebo sdílejí osobní údaje. Po všech rozšířeních to bude vyžadováno někdy v první polovině roku 2026. Tyto informace se zobrazí uživateli, když začne instalovat rozšíření, spolu s veškerými oprávněními, která rozšíření požaduje.

    Ladislav Hagara | Komentářů: 0
    27.10. 17:11 | Humor

    Jste nuceni pracovat s Linuxem? Chybí vám pohodlí, které vám poskytoval Microsoft, když vás špehoval a sledoval všechno, co děláte? Nebojte se. Recall for Linux vám vrátí všechny skvělé funkce Windows Recall, které vám chyběly.

    Ladislav Hagara | Komentářů: 1
    27.10. 16:11 | Komunita

    Společnost Fre(i)e Software oznámila, že má budget na práci na Debianu pro tablety s cílem jeho vyžívání pro vzdělávací účely. Jako uživatelské prostředí bude použito Lomiri.

    Ladislav Hagara | Komentářů: 1
    26.10. 17:11 | IT novinky

    Proběhla hackerská soutěž Pwn2Own Ireland 2025. Celkově bylo vyplaceno 1 024 750 dolarů za 73 unikátních zranitelností nultého dne (0-day). Vítězný Summoning Team si odnesl 187 500 dolarů. Shrnutí po jednotlivých dnech na blogu Zero Day Initiative (1. den, 2. den a 3. den) a na YouTube.

    Ladislav Hagara | Komentářů: 5
    26.10. 13:33 | Komunita

    Byl publikován říjnový přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Pracuje se na podpoře M3. Zanedlouho vyjde Fedora Asahi Remix 43. Vývojáře lze podpořit na Open Collective a GitHub Sponsors.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (36%)
     (47%)
     (20%)
     (19%)
     (23%)
     (17%)
     (21%)
     (17%)
     (18%)
    Celkem 279 hlasů
     Komentářů: 14, poslední 14.10. 09:04
    Rozcestník

    Dotaz: Sqlite3 a funkcia regexp

    vadimo avatar 4.2.2009 08:50 vadimo | skóre: 14 | Liptovský Mikuláš
    Sqlite3 a funkcia regexp
    Přečteno: 762×

    Zdravím všetkých zdatných :-) Včera som strávil veľa času hladaním na internete ako spojazdniť (vytvoriť) fukciu regexp vo vyhľadávani v databáze Sqlite3. Tu trosku popísem ako to u mna vyzera. Sqlite dotazy zadávam z bash shellu, nie je spojena s php. Tazke ak potrebujem ziskat vysledok, tak v bash scripte mam nieco takéto:

    $otazka="coca cola"   # nestaci mi nahradit za coca_cola, potrebujem viac presnejsich kombinacii
    sqlite3 -separator \| test.db "select * from zoznam where nazov like '$otazka%';" > vysledok
     
    Zakladny regexp co je zabudovany (% a _) mi nestacia, lebo ja potrebujem viac komnbinacii. Skusal som aj cez sqlite vyhladat vsetky moznosti ako napr otazka="coca_cola" apotom %$otazka% a neskor cely vysledok filtrovat a triedit v bashi cez funkcie for a if s poctom riadkov vysledku a podobne. Fungovalo to, ale bolo velmi pomale (500 vysledkov filtrovalo asi 30 sek). Pre informaciu, dtb ma vyse 50MB a je v nej cez 500.000 riadkov v jednej tabulke. Tazke som to vzdal a myslim, ze najlepsie bude implemntovat do nej regexp funkciu. Takze ak by mi niekto vedel ako do Sqlite3 dostat regexp z bashu, budem velmi rad.
    Dakujem.

    Odpovědi

    vadimo avatar 4.2.2009 21:27 vadimo | skóre: 14 | Liptovský Mikuláš
    Rozbalit Rozbalit vše Re: Sqlite3 a funkcia regexp

    Alebo sa opytam este takto. Viete mi poradit podobnu a jednoduchu databazu ako je sqlite3? Poziadavky:

    import z csv, ovladanie cez prikazovy riadok, dostatocne rychla.

    Dakujem.

    5.2.2009 09:29 neaktivni | skóre: 24 | blog: neaktivni
    Rozbalit Rozbalit vše Re: Sqlite3 a funkcia regexp
    Bude třeba do sqlite doimplementovat regexp asi nějak takto. Žel nikdy jsem se o takovou věc nepokoušel, tak víc neporadím.

    Ohledně jiné db - takhle jednoduchou a rychlou asi nenajdete. IMHO HSQLDB nemůže konkurovat (zkoušel jsem a byl jsem ve srovnání s SQLite zklamán). Kdybych se chtěl vyhnout implementaci regexp a získat rychlost, asi bych si zjistil, jestli mám tabulky správně oindexované a také bych zvažoval, jestli nebude časově efektivní před dotazy zmigrovat tabulky do sqlite databáze v paměti (:memory: nebo tak nějak).

    Zkuste, jestli máte čas, trochu víc popsat, Váš případ použití.

    vadimo avatar 5.2.2009 16:14 vadimo | skóre: 14 | Liptovský Mikuláš
    Rozbalit Rozbalit vše Re: Sqlite3 a funkcia regexp

    Dakujem za odpoved.

    Dnes  este rano som skompiloval ten zdrojak ktory tu uvadzate, nachádzal sa priamo v src sqlite. Dostal som vysledok SqliteIcu.so, nakopiroval do /usr/lib/ (tam bolo aj sqlite.so). A nevedel som ako dalej. Podla toho co som cital v readme, tak staci len nakopirovat, ale nejak sa mi nedari s tym pracovat.

    Mne sa zatial podarilo zistit aj dalsia moznost (ak som to dobre pochopil?), tak táto "fičurina" sa da zakomponovat priamo do sqlite úpravou func.c a znova skompilovat. Este su dalsie dve moznosti. Tou prvou je pysqlite, moc som o tom este nezistoval, ale je to connect na databazu, kde sa da aj nadefinovat vlastna funkcia.  Potom dalsia moznost, do ktorej sa asi pustím je cely script z bash prepisat do PHP, kde sa tak isto da spravit connect na sqlite databazu a v php si nadefinovat vlastnu sqlite funkciu. Ale neviem aky to bude mat dopad na rychlost. (a ani neviem ako to vlastne funguje, ako sa sqlite dozvie o funckii?? asi nijak, skor si myslim, ze za budu vysledky potom filtrovat v PHP)

    Co sa tyka pouzita, najst slovne spojenie a jeho variacie (coca.cola, coca-cola, coca_cola, coca&cola) v názve. Najprv, hladat s medzerou, potom s variaciami ako samostatny vyskyt, potom iba na zaciatku vety, potom kdekolvek vo vete, a nakoniec aj akekolvek spojene aj s inym slovom. Tj vytriedit podla revelancie. Zatial nemam s sqlite moc skusenosti, no viem, ze fungoval by nasledujuci sposob:

    najst vsetky vyhovujuce vyskyty (LIKE '%coca_cola%'  ,vysledok bude napr. 500 z 500.000), a vysledok ulozit ako csv, potom ho importovat ako samostatnu tabulku a az na novej tabulke viacnasobne podniknut rozne filtre cez REGEXP a vysledok postupne ukladat a tymto sposobom budem mat aj zotriedeny vysledok podla revelancie, tj to najvýstižnejšie na zaciatku, bordel na konci.

    Ide o to, ze REGEXP zakomponovany priamo v sqlite bude o dost rychlejsi ako v PHP alebo pythone (myslim). Este dnes sa pokusim to nejak dostat priamo do sqlite, ak nie, zacnem testovat moznosti a rychlost v php.

    PS: tak a mám to!! Ste ma nakopli :-) vyzera ze to pojde, tu je postup:

    ------>>

    Stiahnut sqlite source (nie sqlite amalgamatio!)
    skompilovat s podporou extension:  (to som prvy krat neurobil a preto mi neslo natihanut rozsirenie)
    ./configure --enable-load-extension
    make
    make install (alebo checkinstall)


    Skompilovat extension ICU (islo to v pohode, iba doinstalovat jeden balicek)
    sudo apt-get install  libicu36-dev
    cd ext/icu
    gcc -I ../../src -shared icu.c `icu-config --ldflags` -o libSqliteIcu.so 
    sudo cp libSqliteIcu.so /usr/lib/        (nakopirujeme to do systemu)
    icu-config --ldflags  

    v sqlite natiahnut rozsierenie:
    .load libSqliteIcu.so  (no a toto mi neslo kvoli tomu, ze som nedal --enable-load-extension)

    let's go!

    vadimo avatar 5.2.2009 16:37 vadimo | skóre: 14 | Liptovský Mikuláš
    Rozbalit Rozbalit vše Re: Sqlite3 a funkcia regexp

    Tak som spokojny, funguje tak ako ma, je to rychle. Ale mam zas problem s tym, ze LIKE bolo case insensitive a rad by som tuto moznost vyuzil aj v REGEXP. A neviem ci je to vlastne mozne.

    vadimo avatar 5.2.2009 16:54 vadimo | skóre: 14 | Liptovský Mikuláš
    Rozbalit Rozbalit vše Re: Sqlite3 a funkcia regexp

    OK, mam aj to. Staci pred vyraz pouzit (?i). Ináč za dva dni som nikde na nete nenasiel konkrétny návod ako na to. Mozno by nebolo odveci to niekde vypichnut, myslim ten regexp v sqlite.

    vadimo avatar 5.2.2009 17:40 vadimo | skóre: 14 | Liptovský Mikuláš
    Rozbalit Rozbalit vše Re: Sqlite3 a funkcia regexp

    Je pekne ze to funguje ako ma, ale neviem ako docielit toho, aby som to natiahol jednym prikazom zo shellu. Ide o to, ze spustim sqlite a musim zadat prikaz .load libSqliteIcu.so 

    Ale ako to urobit jednym prikazom zo shellu? Toto by mi teraz nefungovalo, lebo musim to natiahnut. Ale ako? Nejak to tam naimplementovat.

    sqlite3 -separator \| test.db "select * from zoznam where nazov regexp '^otazka.*';" > vysledok

    vadimo avatar 5.2.2009 20:34 vadimo | skóre: 14 | Liptovský Mikuláš
    Rozbalit Rozbalit vše Re: Sqlite3 a funkcia regexp

    Na manualovej stranke sa pise o volbe -init za ktorou nasleduje nazov suboru, v ktorom mozu byt interne prikazy pre sqlite. Nasiel som aj "prikladny" subor, ktory mn vobec nefungoval, ale osvedcilo sa to takto:

    Vytvorit subor napr. s menom commands, do neho vlozit tieto riadky:

    .separator |
    .load   libSqliteIcu.so

     

    A príkaz v shelli vyzera nasledovne:

    sqlite3 -init commands test.db "select * from zoznam where nazov regexp '^otazka.*';"

    PS: Dnes budem spokojne spat :-)
    5.2.2009 21:27 neaktivni | skóre: 24 | blog: neaktivni
    Rozbalit Rozbalit vše Re: Sqlite3 a funkcia regexp
    teda smekam ))
    vadimo avatar 28.2.2009 06:21 vadimo | skóre: 14 | Liptovský Mikuláš
    Rozbalit Rozbalit vše Re: Sqlite3 a funkcia regexp

    Este doplním, ze ve tom súbore s príkazmi mi nie vzdy (dve verzie OS) fungoval príkaz .quit (alebo .q). Jednoducho sa vsetko vykonalo ako malo, len nenastal exit z sqlite3.

    Tak riesim to quitom v cli riadku:

    sqlite3 -init commands test.db '.quit'

    A este pridávam uplne na zaciatok súboru s príkazmy paramater .echo ON  ,nech vidím co sa deje.

    vadimo avatar 6.2.2009 09:01 vadimo | skóre: 14 | Liptovský Mikuláš
    Rozbalit Rozbalit vše Re: Sqlite3 a funkcia regexp

    Este som sa dostal k dalsej moznosti rozsirena Sqlite3 a tou je fulltextové vyhladávanie pomocou funkcie FTS3. Tiež mi ju bolo treba "aktivovat" pri kompilácii. Tazke ak by sme chceli REGEXP a MATCH s FTS3, treba to nakonfigurovat pri kompilácii nasledovne:

    CFLAGS="-DSQLITE_ENABLE_FTS3=1" ./configure --enable-load-extension

    Nová tabulka:
    CREATE VIRTUAL TABLE zoznam using FTS3(nazov, popis);

    Full text search: (Viac moznosti syntaxe je v README syntax)

    SELECT * FROM zoznam WHERE nazov MATCH 'otazka*';

    Ale najlepsie na tom je moznost ulozenia vysledku do noveho pola(stlpca) a  zvyraznenie vysledku pomocou HTML tagov pomocou snippet

    SELECT *,snippet(zoznam,'<strong>','</strong>') FROM zoznam WHERE nazov MATCH 'cola*';
    

    vysledok a match zvyrazneny:

    coca cola | black accid | <strong>coca</strong> cola

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.