Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
####### # # E-scripts on SQL. # # Note 1: use the eev command (defined in eev.el) and the # ee alias (in my .zshrc) to execute parts of this file. # Executing this file as a whole makes no sense. # An introduction to eev can be found here: # # (find-eev-quick-intro) # http://angg.twu.net/eev-intros/find-eev-quick-intro.html # # Note 2: be VERY careful and make sure you understand what # you're doing. # # Note 3: If you use a shell other than zsh things like |& # and the for loops may not work. # # Note 4: I always run as root. # # Note 5: some parts are too old and don't work anymore. Some # never worked. # # Note 6: the definitions for the find-xxxfile commands are on my # .emacs. # # Note 7: if you see a strange command check my .zshrc -- it may # be defined there as a function or an alias. # # Note 8: the sections without dates are always older than the # sections with dates. # # This file is at <http://angg.twu.net/e/sql.e> # or at <http://angg.twu.net/e/sql.e.html>. # See also <http://angg.twu.net/emacs.html>, # <http://angg.twu.net/.emacs[.html]>, # <http://angg.twu.net/.zshrc[.html]>, # <http://angg.twu.net/escripts.html>, # and <http://angg.twu.net/>. # ####### # «.sqlite» (to "sqlite") # «.gdbm» (to "gdbm") # «.tokyocabinet» (to "tokyocabinet") # (find-es "postgres") Pgrepp m/postgres/ |& tee ~/o # (find-fline "~/o") ##### # # create a user "postgres" (for createdb, etc) # ##### # (find-fline "/etc/passwd" "postgres") # postgres::31:32:postgres:/home/postgres:/usr/bin/zsh # postgres0:*:31:32:postgres:/var/postgres:/bin/sh cd /home mkdir postgres cd /home/postgres ln -s ../root/.zshrc . ln -s ../root/.emacs . ln -s ../root/eev.el . ln -s ../root/bin . cd /home chown -Rv postgres: postgres ##### # # postgres: installation # 2000jun20 # ##### Pgrep m/postgres/i |& tee ~/o # (find-fline "~/o") apti libpgsql libpgtcl postgresql postgresql-doc postgresql-dev # Allow TCP/IP connections (for pgaccess): # # (find-fline "/etc/rc2.d/S20postgresql" "Usage:") # (find-fline "/etc/init.d/postgresql") # (find-fline "/etc/postgresql/postmaster.init" "PGALLOWTCPIP") # PGALLOWTCPIP=yes /etc/init.d/postgresql restart # (find-fline "/usr/doc/libpgsql/") # (find-fline "/usr/doc/libpgtcl/") # (find-fline "/usr/doc/postgresql-dev/") # (find-fline "/usr/doc/postgresql-doc/") # (find-fline "/usr/doc/postgresql/") # (find-vldifile "libpgsql.list") # (find-vldifile "libpgtcl.list") # (find-vldifile "postgresql-dev.list") # (find-vldifile "postgresql-doc.list") # (find-vldifile "postgresql.list") # (find-fline "/usr/doc/postgresql-doc/") # (find-fline "/usr/X11R6/bin/pgaccess") # (find-fline "/etc/postgresql/") ##### # # postgresql # 2000jun26 # ##### # (find-status "postgresql") # (find-vldifile "postgresql.list") # (find-fline "/usr/doc/postgresql/") # (find-vldifile "postgresql.preinst") # (find-vldifile "postgresql.postinst") # (find-vldifile "postgresql.postinst" "these commands must be run by") # (find-vldifile "postgresql.prerm") # (find-vldifile "postgresql.postrm") # (find-fline "/etc/postgresql/") # (find-fline "/etc/postgresql/pg_hba.conf") # (find-fline "/etc/postgresql/pg_ident.conf") # (find-fline "/etc/postgresql/postgresql.env") # (find-fline "/etc/postgresql/postmaster.init") # (eeman "1 createuser") # (find-fline "/usr/lib/postgresql/bin/createuser") . /etc/postgresql/postgresql.env ##### # # pgaccess # 2000jun26 # ##### # (find-status "pgaccess") # (find-vldifile "pgaccess.list") # (find-fline "/usr/doc/pgaccess/") # (code-c-d "pga" "/usr/lib/postgresql/pgaccess/") # (find-pgafile "") # (find-pgafile "lib/help/") ##### # # postgresql-client # 2000jun26 # ##### # (find-status "postgresql-client") # (find-vldifile "postgresql-client.list") # (find-fline "/usr/doc/postgresql-client/") # (eeman "1 createdb") # (eeman "1 destroyuser") # (eeman "1 destroydb") # (eeman "1 pg_dump") # (eeman "1 pg_wrapper") # (eeman "1 psql") # (eeman "1 createuser") # (find-fline "/usr/lib/postgresql/bin/createuser") # (find-fline "/usr/lib/postgresql/bin/createdb") # (find-fline "/usr/lib/postgresql/bin/destroyuser") # (find-fline "/usr/lib/postgresql/bin/destroydb") # (find-fline "/var/lib/postgres/data/") # (find-fline "/etc/services" "postgres") ##### # # postgresql-doc # 2000jun26 # ##### # (find-status "postgresql-doc") # (find-vldifile "postgresql-doc.list") # (find-fline "/usr/doc/postgresql-doc/") # (code-c-d "pgdoc" "/usr/doc/postgresql-doc/") # (find-pgdocfile "") # (find-pgdocfile "README.passwords") # (find-pgdocw3 "postgres/postgres.htm") # (find-pgdocw3 "postgres/install13251.htm" "Playing with Postgres") # (find-pgdocw3 "postgres/postgres.htm" "Managing a Database") # (find-fline "/var/lib/postgres/data/base/") # (find-fline "/var/lib/postgres/data/base/foo/") #* cat > $EEG <<'---' create database foo; \c foo create table bar (i int4, c char(16)); \d bar \q --- eeg psql template1 #* cat > $EEG <<'---' \? \l \dS # bye: \q --- PAGER=cat \ eeg psql template1 #* ##### # # pgaccess # 2000aug21 # ##### # (find-status "pgaccess") # (find-vldifile "pgaccess.list") # (find-fline "/usr/doc/pgaccess/") # (find-fline "/usr/lib/postgresql/pgaccess/") # (code-c-d "pgalh" "/usr/lib/postgresql/pgaccess/lib/help/") # (find-pgalhfile "") # (find-pgalhfile "create_database.hlp") ##### # # libpgtcl # 2000aug21 # ##### apti libpgtcl # (find-status "libpgtcl") # (find-vldifile "libpgtcl.list") # (find-fline "/usr/doc/libpgtcl/") # (find-status "postgresql-doc") # (find-vldifile "postgresql-doc.list") # (find-vldifile "postgresql-doc.list" "pgtcl") # (find-fline "/usr/doc/postgresql-doc/") dmissingp pgtcl # (code-c-d "pgdoc" "/usr/share/doc/postgresql-doc/postgres/") # (find-pgdocw3 "" "pgtcl") # (find-pgdocfile "" "pgtcl") # (find-pgdocw3 "pgtcl-pgconndefaults.htm") # (find-pgdocw3 "pgtcl-pgconnect.htm") # (find-pgdocw3 "pgtcl-pgdisconnect.htm") # (find-pgdocw3 "pgtcl-pgexec.htm") # (find-pgdocw3 "pgtcl-pglisten.htm") # (find-pgdocw3 "pgtcl-pgloclose.htm") # (find-pgdocw3 "pgtcl-pglocreat.htm") # (find-pgdocw3 "pgtcl-pgloexport.htm") # (find-pgdocw3 "pgtcl-pgloimport.htm") # (find-pgdocw3 "pgtcl-pglolseek.htm") # (find-pgdocw3 "pgtcl-pgloopen.htm") # (find-pgdocw3 "pgtcl-pgloread.htm") # (find-pgdocw3 "pgtcl-pglotell.htm") # (find-pgdocw3 "pgtcl-pglounlink.htm") # (find-pgdocw3 "pgtcl-pglowrite.htm") # (find-pgdocw3 "pgtcl-pgresult.htm") # (find-pgdocw3 "pgtcl-pgselect.htm") # (find-pgdocw3 "pgtcl.htm") # (find-pgdocw3 "pgtcl18759.htm") # (find-pgdocw3 "pgtcl18763.htm") # (code-c-d "pgtcl" "/usr/src/postgresql-6.3.2/src/interfaces/libpgtcl/") eecd pgtcl etags *.[ch] # (find-pgtcltag "pg_connect") lynx /usr/doc/libpgtcl/html/ #* expect -c ' set list0 [info commands] load libpgtcl.so foreach p [info commands] { # puts "[lsearch $list0 $p] $p" if {[lsearch $list0 $p]==-1} { lappend list1 $p } } foreach p [lsort $list1] { puts $p } ' #* # (find-pgdocw3 "pgtcl18759.htm") cat > $EEG <<'---' load libpgtcl.so # set conn [pg_connect template1 -host localhost -port 5432] set conn [pg_connect template1] set res [pg_exec $conn "SELECT datname FROM pg_database ORDER BY datname"] set ntups [pg_result $res -numTuples] for {set i 0} {$i < $ntups} {incr i} { lappend datnames [pg_result $res -getTuple $i] } puts $datnames pg_disconnect $conn exit --- eeg tclsh #* alias pgaccessp='su -s /usr/X11R6/bin/pgaccess postgres' function pgdo () { su -s $1 postgres -- $*[2,-1] } pgdo `w createdb` edrx # (find-pgfile "src/bin/pgtclsh/") # (find-pgfile "doc/src/sgml/libpgtcl.sgml") # (find-pgfile "src/pl/tcl/") # (find-pgfile "src/bin/") # (find-pgfile "src/bin/createdb/createdb.sh") # (find-pgfile "debian/pg_wrapper.c") # (find-fline "/usr/lib/postgresql/bin/") # (eeman "pg_wrapper") # (find-fline "/usr/bin/createdb") # (find-fline "/usr/bin/createuser") # (find-fline "/usr/lib/postgresql/bin/createdb") # (find-fline "/usr/lib/postgresql/bin/createuser") # (find-htetfile "PostgreSQL-HOWTO.txt.gz") # (find-fline "/usr/doc/HOWTO/PostgreSQL-HOWTO.gz") # (find-vldifile "www-pgsql.list") # (find-fline "/usr/doc/postgresql-doc/") lynx /usr/doc/postgresql-doc/postgres/index.html edrxnetscape /usr/doc/postgresql-doc/postgres/index.html # (find-fline "/usr/doc/libpgtcl/README") # (find-fline "/usr/X11R6/bin/pgaccess") # (find-fline "/usr/lib/postgresql/lib/pgaccess.tcl") # (find-fline "/usr/lib/postgresql/lib/pgaccess.tcl" "Open database") # (find-fline "/usr/lib/postgresql/lib/pgaccess.tcl" "open_database") # (find-fline "/usr/lib/postgresql/lib/pgaccess.tcl" "libpgtcl.so") # (find-fline "/var/postgres/") # (find-fline "/etc/postgresql/postgresql.env") # (format "%x" 5432) cd /proc/net/ mycat * | l +/1538 psql edrx # (find-fline "/etc/init.d/postgresql") # (find-fline "/etc/postgresql/postmaster.init") # Adicionar essas linhas no final: # PGALLOWTCPIP=yes # PGPORT=5432 # (find-fline "/var/lib/postgres/data/") # (find-fline "/etc/services" "postgres") # (format "%x" 5432) # # Ele não estava se atachando na porta 5432. # Solução porca: # ps | awk '/work/{print$2}' pidof workbone l < /proc/$(pidof postmaster)/cmdline /etc/init.d/postgresql stop export PGALLOWTCPIP=yes /etc/init.d/postgresql start netstat -veao telnet 127.0.0.1 5432 wish -f /usr/lib/postgresql/lib/pgaccess.tcl wish -f /usr/src/postgresql-6.3.2/src/bin/pgaccess/pgaccess.tcl cd /usr/src/postgresql-6.3.2/ cd /usr/src/postgresql-6.3.2/src/bin/pgaccess/ agrep ^proc pgaccess.tcl # (find-pgfile "doc/src/sgml/") # (find-pgfile "doc/src/sgml/install.sgml" "create database foo") cd /usr/src/postgresql-6.3.2/doc/src/sgml/ cd /usr/src/postgresql-6.3.2/doc/ for i in *.ps; do gv $i; done gv /usr/src/postgresql-6.3.2/doc/user.ps gv /usr/src/postgresql-6.3.2/doc/tutorial.ps psql psql -p 5432 # (find-pgfile "") ##### # # postgres # 2000may26 # ##### # (find-status "libpgtcl") # (find-status "pgaccess") # (find-status "postgresql") # (find-status "postgresql-client") # (find-status "postgresql-doc") # (find-status "postgresql-pl") # (find-fline "/usr/doc/libpgtcl/") # (find-fline "/usr/doc/pgaccess/") # (find-fline "/usr/doc/postgresql-client/") # (find-fline "/usr/doc/postgresql-doc/") # (find-fline "/usr/doc/postgresql-pl/") # (find-fline "/usr/doc/postgresql/") # (find-vldifile "libpgtcl.list") # (find-vldifile "pgaccess.list") # (find-vldifile "postgresql-client.list") # (find-vldifile "postgresql-doc.list") # (find-vldifile "postgresql-pl.list") # (find-vldifile "postgresql.list") ##### # # sql.el # 2004apr05 # ##### # http://www.emacswiki.org/elisp/sql.el ##### # # sqlite # 2007apr22 # ##### # «sqlite» (to ".sqlite") # (find-es "sqlite") ##### # # gdbm # 2013jun06 # ##### # «gdbm» (to ".gdbm") # (find-zsh "installeddebs | sort | grep gdbm") # (find-zsh "availabledebs | sort | grep gdbm") # http://en.wikipedia.org/wiki/Gdbm ##### # # Tokyo Cabinet # ##### # «tokyocabinet» (to ".tokyocabinet") # (find-zsh "installeddebs | sort | grep cabinet") # (find-zsh "availabledebs | sort | grep cabinet") # (find-status "tokyocabinet-doc") # (find-vldifile "tokyocabinet-doc.list") # (find-udfile "tokyocabinet-doc/") https://xkcd.com/327/ little bobby tables https://news.ycombinator.com/item?id=28771656 Sqlfluff the SQL Linter for Humans (sqlfluff.com) https://howqueryengineswork.com/ # (find-status "postgresql") # (find-vldifile "postgresql.list") # (find-udfile "postgresql/") # (find-status "postgresql-client") # (find-vldifile "postgresql-client.list") # (find-udfile "postgresql-client/") # (find-status "postgresql-doc-13") # (find-vldifile "postgresql-doc-13.list") # (find-udfile "postgresql-doc-13/") # (find-udfile "postgresql-doc-13/html/") # (find-udfile "postgresql-doc-13/tutorial/") # file:///usr/share/doc/postgresql-doc-13/html/app-createuser.html # file:///usr/share/doc/postgresql-doc-13/html/app-dropuser.html # (find-file "/usr/share/doc/postgresql-doc-13/html/app-createuser.html") # (find-man "1 createuser") # (find-man "1 createuser" "-s" "--superuser") # (find-man "1 dropuser") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) sudo sudo -u postgres dropuser edrx sudo sudo -u postgres createuser -s edrx * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) export PGCLIENTENCODING=UTF8 export PGUSER=edrx export PGDATABASE=MyDatabaseName createdb $PGDATABASE * (eepitch-shell3) > Jean Louis: To create super user, you do this: createuser -s edrx > Jean Louis: I just guess that you need to switch to "postgres" user to do that first time. > Jean Louis: But once you have done that, you would then setup environment variable in .bashrc, $PGUSER to be edrx > Jean Louis: at that point you need not switch to postgres user any more, as you are using edrx as your super user. > Jean Louis: Single database can hold all your tables, I rarely need different database, but why not. I do have, like CIA World Facts — that is good, and other geographic stuff. > Jean Louis: Set up environment variables: export PGCLIENTENCODING=UTF8 export PGUSER=edrx export PGDATABASE=MyDatabaseName > Jean Louis: but you setup PGDATABASE after you created it psql https://news.ycombinator.com/item?id=41897526 WITH all_numbers AS https://stackoverflow.com/questions/1018822/inner-join-on-vs-where-clause https://news.ycombinator.com/item?id=41992870 INNER JOIN ON vs WHERE clause (2009) (stackoverflow.com) https://lackofimagination.org/2024/11/writing-composable-sql-using-knex-and-pipelines/ https://news.ycombinator.com/item?id=42265668 Writing Composable SQL Using Knex and Pipelines (lackofimagination.org) https://notso.boringsql.com/posts/deletes-are-difficult/ https://matt.blwt.io/post/7-databases-in-7-weeks-for-2025/ https://www.depesz.com/2024/12/01/sql-best-practices-dont-compare-count-with-0/ # Local Variables: # coding: utf-8-unix # End: