#!/usr/bin/python3 import psycopg2 db = psycopg2.connect("") csr = db.cursor() csr.execute("select version()") for r in csr: print(r[0]) csr.execute("select datcollate from pg_database where datname = current_database()") for r in csr: print(r[0]) csr.execute("drop table if exists t_pgcollate") csr.execute("create table t_pgcollate(t text)") for c in range(1, 0xD800): csr.execute("insert into t_pgcollate(t) values(%s)", (chr(c),)) for c in range(0xE000, 0x110000): csr.execute("insert into t_pgcollate(t) values(%s)", (chr(c),)) for s in ('asa', 'asb', 'assa', 'aßa', 'ata', 'bab', 'bäb', 'bac', ): csr.execute("insert into t_pgcollate(t) values(%s)", (s,)) for s in ('aa', 'aa-', '-ab', '[ab]', '~ab', 'ab', ): csr.execute("insert into t_pgcollate(t) values(%s)", (s,)) for s in ( 'aa', 'aa ', 'a a', 'a a ', ' aa', ' aa ', ' a a', ' a a ', 'ab', 'ab ', 'a b', 'a b ', ' ab', ' ab ', ' a b', ' a b ', ): csr.execute("insert into t_pgcollate(t) values(%s)", (s,)) db.commit() csr.execute("select * from t_pgcollate order by t") for r in csr: print(r)