PostgreSQL Source Code  git master
generate_unaccent_rules Namespace Reference

Data Structures

class  Codepoint
 

Functions

def bytes (source, encoding='ascii', errors='strict')
 
def print_record (codepoint, letter)
 
def is_mark_to_remove (codepoint)
 
def is_plain_letter (codepoint)
 
def is_mark (codepoint)
 
def is_letter_with_marks (codepoint, table)
 
def is_letter (codepoint, table)
 
def get_plain_letter (codepoint, table)
 
def is_ligature (codepoint, table)
 
def get_plain_letters (codepoint, table)
 
def parse_cldr_latin_ascii_transliterator (latinAsciiFilePath)
 
def special_cases ()
 
def main (args)
 

Variables

 stdout
 
 chr = unichr
 
tuple PLAIN_LETTER_RANGES
 
tuple COMBINING_MARK_RANGES
 
 parser = argparse.ArgumentParser(description='This script builds unaccent.rules on standard output when given the contents of UnicodeData.txt and Latin-ASCII.xml given as arguments.')
 
 help
 
 type
 
 str
 
 required
 
 True
 
 dest
 
 action
 
 args = parser.parse_args()
 

Function Documentation

◆ bytes()

def generate_unaccent_rules.bytes (   source,
  encoding = 'ascii',
  errors = 'strict' 
)

Definition at line 52 of file generate_unaccent_rules.py.

Referenced by array_get_slice(), bn_to_mpi(), chr(), decoct(), dir_open_for_write(), fillTrgm(), ginCompressPostingList(), mp_int_binary_len(), mp_int_unsigned_len(), mp_px_rand(), parse_cldr_latin_ascii_transliterator(), pg_rightmost_one_pos64(), pg_signal_dispatch_thread(), PLyUnicode_Bytes(), SPI_sql_row_to_xmlelement(), and tar_write_padding_data().

52  def bytes(source, encoding='ascii', errors='strict'):
53  return source.encode(encoding=encoding, errors=errors)
54 else:
55 # END: Python 2/3 compatibility - remove when Python 2 compatibility dropped
def bytes(source, encoding='ascii', errors='strict')

◆ get_plain_letter()

def generate_unaccent_rules.get_plain_letter (   codepoint,
  table 
)
Return the base codepoint without marks. If this codepoint has more
than one combining character, do a recursive lookup on the table to
find out its plain base letter.

Definition at line 139 of file generate_unaccent_rules.py.

References assert, is_letter_with_marks(), and is_plain_letter().

Referenced by get_plain_letters(), and main().

139 def get_plain_letter(codepoint, table):
140  """Return the base codepoint without marks. If this codepoint has more
141  than one combining character, do a recursive lookup on the table to
142  find out its plain base letter."""
143  if is_letter_with_marks(codepoint, table):
144  if len(table[codepoint.combining_ids[0]].combining_ids) > 1:
145  return get_plain_letter(table[codepoint.combining_ids[0]], table)
146  elif is_plain_letter(table[codepoint.combining_ids[0]]):
147  return table[codepoint.combining_ids[0]]
148 
149  # Should not come here
150  assert(False)
151  elif is_plain_letter(codepoint):
152  return codepoint
153 
154  # Should not come here
155  assert(False)
156 
#define assert(TEST)
Definition: imath.c:73
def get_plain_letter(codepoint, table)
def is_letter_with_marks(codepoint, table)

◆ get_plain_letters()

def generate_unaccent_rules.get_plain_letters (   codepoint,
  table 
)
Return a list of plain letters from a ligature.

Definition at line 161 of file generate_unaccent_rules.py.

References assert, get_plain_letter(), and is_ligature().

Referenced by main().

161 def get_plain_letters(codepoint, table):
162  """Return a list of plain letters from a ligature."""
163  assert(is_ligature(codepoint, table))
164  return [get_plain_letter(table[id], table) for id in codepoint.combining_ids]
165 
def is_ligature(codepoint, table)
def get_plain_letters(codepoint, table)
#define assert(TEST)
Definition: imath.c:73
def get_plain_letter(codepoint, table)

◆ is_letter()

def generate_unaccent_rules.is_letter (   codepoint,
  table 
)
Return true for letter with or without diacritical marks.

Definition at line 135 of file generate_unaccent_rules.py.

References is_letter_with_marks(), and is_plain_letter().

Referenced by is_ligature().

135 def is_letter(codepoint, table):
136  """Return true for letter with or without diacritical marks."""
137  return is_plain_letter(codepoint) or is_letter_with_marks(codepoint, table)
138 
def is_letter_with_marks(codepoint, table)
def is_letter(codepoint, table)

◆ is_letter_with_marks()

def generate_unaccent_rules.is_letter_with_marks (   codepoint,
  table 
)
Returns true for letters combined with one or more marks.

Definition at line 114 of file generate_unaccent_rules.py.

References is_mark(), and is_plain_letter().

Referenced by get_plain_letter(), is_letter(), and main().

114 def is_letter_with_marks(codepoint, table):
115  """Returns true for letters combined with one or more marks."""
116  # See https://www.unicode.org/reports/tr44/tr44-14.html#General_Category_Values
117 
118  # Letter may have no combining characters, in which case it has
119  # no marks.
120  if len(codepoint.combining_ids) == 1:
121  return False
122 
123  # A letter without diacritical marks has none of them.
124  if any(is_mark(table[i]) for i in codepoint.combining_ids[1:]) is False:
125  return False
126 
127  # Check if the base letter of this letter has marks.
128  codepoint_base = codepoint.combining_ids[0]
129  if (is_plain_letter(table[codepoint_base]) is False and \
130  is_letter_with_marks(table[codepoint_base], table) is False):
131  return False
132 
133  return True
134 
def is_letter_with_marks(codepoint, table)

◆ is_ligature()

def generate_unaccent_rules.is_ligature (   codepoint,
  table 
)
Return true for letters combined with letters.

Definition at line 157 of file generate_unaccent_rules.py.

References is_letter().

Referenced by get_plain_letters(), and main().

157 def is_ligature(codepoint, table):
158  """Return true for letters combined with letters."""
159  return all(is_letter(table[i], table) for i in codepoint.combining_ids)
160 
def is_ligature(codepoint, table)
def is_letter(codepoint, table)

◆ is_mark()

def generate_unaccent_rules.is_mark (   codepoint)
Returns true for diacritical marks (combining codepoints).

Definition at line 110 of file generate_unaccent_rules.py.

Referenced by is_letter_with_marks(), and is_mark_to_remove().

110 def is_mark(codepoint):
111  """Returns true for diacritical marks (combining codepoints)."""
112  return codepoint.general_category in ("Mn", "Me", "Mc")
113 

◆ is_mark_to_remove()

def generate_unaccent_rules.is_mark_to_remove (   codepoint)
Return true if this is a combining mark to remove.

Definition at line 93 of file generate_unaccent_rules.py.

References is_mark().

Referenced by main().

93 def is_mark_to_remove(codepoint):
94  """Return true if this is a combining mark to remove."""
95  if not is_mark(codepoint):
96  return False
97 
98  for begin, end in COMBINING_MARK_RANGES:
99  if codepoint.id >= begin and codepoint.id <= end:
100  return True
101  return False
102 

◆ is_plain_letter()

def generate_unaccent_rules.is_plain_letter (   codepoint)
Return true if codepoint represents a "plain letter".

Definition at line 103 of file generate_unaccent_rules.py.

Referenced by get_plain_letter(), is_letter(), and is_letter_with_marks().

103 def is_plain_letter(codepoint):
104  """Return true if codepoint represents a "plain letter"."""
105  for begin, end in PLAIN_LETTER_RANGES:
106  if codepoint.id >= begin and codepoint.id <= end:
107  return True
108  return False
109 

◆ main()

def generate_unaccent_rules.main (   args)

Definition at line 228 of file generate_unaccent_rules.py.

References get_plain_letter(), get_plain_letters(), is_letter_with_marks(), is_ligature(), is_mark_to_remove(), parse_cldr_latin_ascii_transliterator(), print_record(), and special_cases().

228 def main(args):
229  # https://www.unicode.org/reports/tr44/tr44-14.html#Character_Decomposition_Mappings
230  decomposition_type_pattern = re.compile(" *<[^>]*> *")
231 
232  table = {}
233  all = []
234 
235  # unordered set for ensure uniqueness
236  charactersSet = set()
237 
238  # read file UnicodeData.txt
239  with codecs.open(
240  args.unicodeDataFilePath, mode='r', encoding='UTF-8',
241  ) as unicodeDataFile:
242  # read everything we need into memory
243  for line in unicodeDataFile:
244  fields = line.split(";")
245  if len(fields) > 5:
246  # https://www.unicode.org/reports/tr44/tr44-14.html#UnicodeData.txt
247  general_category = fields[2]
248  decomposition = fields[5]
249  decomposition = re.sub(decomposition_type_pattern, ' ', decomposition)
250  id = int(fields[0], 16)
251  combining_ids = [int(s, 16) for s in decomposition.split(" ") if s != ""]
252  codepoint = Codepoint(id, general_category, combining_ids)
253  table[id] = codepoint
254  all.append(codepoint)
255 
256  # walk through all the codepoints looking for interesting mappings
257  for codepoint in all:
258  if codepoint.general_category.startswith('L') and \
259  len(codepoint.combining_ids) > 1:
260  if is_letter_with_marks(codepoint, table):
261  charactersSet.add((codepoint.id,
262  chr(get_plain_letter(codepoint, table).id)))
263  elif args.noLigaturesExpansion is False and is_ligature(codepoint, table):
264  charactersSet.add((codepoint.id,
265  "".join(chr(combining_codepoint.id)
266  for combining_codepoint \
267  in get_plain_letters(codepoint, table))))
268  elif is_mark_to_remove(codepoint):
269  charactersSet.add((codepoint.id, None))
270 
271  # add CLDR Latin-ASCII characters
272  if not args.noLigaturesExpansion:
273  charactersSet |= parse_cldr_latin_ascii_transliterator(args.latinAsciiFilePath)
274  charactersSet |= special_cases()
275 
276  # sort for more convenient display
277  charactersList = sorted(charactersSet, key=lambda characterPair: characterPair[0])
278 
279  for characterPair in charactersList:
280  print_record(characterPair[0], characterPair[1])
281 
def is_ligature(codepoint, table)
def get_plain_letters(codepoint, table)
def parse_cldr_latin_ascii_transliterator(latinAsciiFilePath)
def print_record(codepoint, letter)
def get_plain_letter(codepoint, table)
def is_letter_with_marks(codepoint, table)

◆ parse_cldr_latin_ascii_transliterator()

def generate_unaccent_rules.parse_cldr_latin_ascii_transliterator (   latinAsciiFilePath)
Parse the XML file and return a set of tuples (src, trg), where "src"
is the original character and "trg" the substitute.

Definition at line 166 of file generate_unaccent_rules.py.

References assert, and bytes().

Referenced by main().

166 def parse_cldr_latin_ascii_transliterator(latinAsciiFilePath):
167  """Parse the XML file and return a set of tuples (src, trg), where "src"
168  is the original character and "trg" the substitute."""
169  charactersSet = set()
170 
171  # RegEx to parse rules
172  rulePattern = re.compile(r'^(?:(.)|(\\u[0-9a-fA-F]{4})) \u2192 (?:\'(.+)\'|(.+)) ;')
173 
174  # construct tree from XML
175  transliterationTree = ET.parse(latinAsciiFilePath)
176  transliterationTreeRoot = transliterationTree.getroot()
177 
178  # Fetch all the transliteration rules. Since release 29 of Latin-ASCII.xml
179  # all the transliteration rules are located in a single tRule block with
180  # all rules separated into separate lines.
181  blockRules = transliterationTreeRoot.findall("./transforms/transform/tRule")
182  assert(len(blockRules) == 1)
183 
184  # Split the block of rules into one element per line.
185  rules = blockRules[0].text.splitlines()
186 
187  # And finish the processing of each individual rule.
188  for rule in rules:
189  matches = rulePattern.search(rule)
190 
191  # The regular expression capture four groups corresponding
192  # to the characters.
193  #
194  # Group 1: plain "src" char. Empty if group 2 is not.
195  # Group 2: unicode-escaped "src" char (e.g. "\u0110"). Empty if group 1 is not.
196  #
197  # Group 3: plain "trg" char. Empty if group 4 is not.
198  # Group 4: plain "trg" char between quotes. Empty if group 3 is not.
199  if matches is not None:
200  src = matches.group(1) if matches.group(1) is not None else bytes(matches.group(2), 'UTF-8').decode('unicode-escape')
201  trg = matches.group(3) if matches.group(3) is not None else matches.group(4)
202 
203  # "'" and """ are escaped
204  trg = trg.replace("\\'", "'").replace('\\"', '"')
205 
206  # the parser of unaccent only accepts non-whitespace characters
207  # for "src" and "trg" (see unaccent.c)
208  if not src.isspace() and not trg.isspace():
209  charactersSet.add((ord(src), trg))
210 
211  return charactersSet
212 
def bytes(source, encoding='ascii', errors='strict')
#define assert(TEST)
Definition: imath.c:73
def parse_cldr_latin_ascii_transliterator(latinAsciiFilePath)

◆ print_record()

def generate_unaccent_rules.print_record (   codepoint,
  letter 
)

Definition at line 79 of file generate_unaccent_rules.py.

References print().

Referenced by main().

79 def print_record(codepoint, letter):
80  if letter:
81  output = chr(codepoint) + "\t" + letter
82  else:
83  output = chr(codepoint)
84 
85  print(output)
86 
void print(const void *obj)
Definition: print.c:36
def print_record(codepoint, letter)

◆ special_cases()

def generate_unaccent_rules.special_cases ( )
Returns the special cases which are not handled by other methods

Definition at line 213 of file generate_unaccent_rules.py.

Referenced by main().

213 def special_cases():
214  """Returns the special cases which are not handled by other methods"""
215  charactersSet = set()
216 
217  # Cyrillic
218  charactersSet.add((0x0401, u"\u0415")) # CYRILLIC CAPITAL LETTER IO
219  charactersSet.add((0x0451, u"\u0435")) # CYRILLIC SMALL LETTER IO
220 
221  # Symbols of "Letterlike Symbols" Unicode Block (U+2100 to U+214F)
222  charactersSet.add((0x2103, u"\xb0C")) # DEGREE CELSIUS
223  charactersSet.add((0x2109, u"\xb0F")) # DEGREE FAHRENHEIT
224  charactersSet.add((0x2117, "(P)")) # SOUND RECORDING COPYRIGHT
225 
226  return charactersSet
227 

Variable Documentation

◆ action

◆ args

generate_unaccent_rules.args = parser.parse_args()

Definition at line 287 of file generate_unaccent_rules.py.

Referenced by _copyAggref(), _copyBoolExpr(), _copyCaseExpr(), _copyCoalesceExpr(), _copyCreateTrigStmt(), _copyDefineStmt(), _copyDistinctExpr(), _copyDoStmt(), _copyFuncCall(), _copyFuncExpr(), _copyGroupingFunc(), _copyMinMaxExpr(), _copyNullIfExpr(), _copyOpExpr(), _copyRangeTableSample(), _copyRowExpr(), _copyScalarArrayOpExpr(), _copySubPlan(), _copyTableSampleClause(), _copyVariableSetStmt(), _copyWindowFunc(), _copyXmlExpr(), _equalAggref(), _equalBoolExpr(), _equalCaseExpr(), _equalCoalesceExpr(), _equalCreateTrigStmt(), _equalDefineStmt(), _equalDistinctExpr(), _equalDoStmt(), _equalFuncCall(), _equalFuncExpr(), _equalGroupingFunc(), _equalMinMaxExpr(), _equalNullIfExpr(), _equalOpExpr(), _equalRangeTableSample(), _equalRowExpr(), _equalScalarArrayOpExpr(), _equalSubPlan(), _equalTableSampleClause(), _equalVariableSetStmt(), _equalWindowFunc(), _equalXmlExpr(), _int_matchsel(), _outAggref(), _outBoolExpr(), _outCaseExpr(), _outCoalesceExpr(), _outDistinctExpr(), _outFuncCall(), _outFuncExpr(), _outGroupingFunc(), _outMinMaxExpr(), _outNullIfExpr(), _outOpExpr(), _outRangeTableSample(), _outRowExpr(), _outScalarArrayOpExpr(), _outSubPlan(), _outTableSampleClause(), _outWindowFunc(), _outXmlExpr(), _readAggref(), _readBoolExpr(), _readCaseExpr(), _readCoalesceExpr(), _readDistinctExpr(), _readFuncExpr(), _readGroupingFunc(), _readMinMaxExpr(), _readNullIfExpr(), _readOpExpr(), _readRowExpr(), _readScalarArrayOpExpr(), _readSubPlan(), _readTableSampleClause(), _readWindowFunc(), _readXmlExpr(), ahprintf(), appendPQExpBuffer(), appendStringInfo(), archprintf(), array_unnest_support(), arraycontsel(), autoinc(), build_aggregate_combinefn_expr(), build_aggregate_deserialfn_expr(), build_aggregate_finalfn_expr(), build_aggregate_serialfn_expr(), build_aggregate_transfn_expr(), build_coercion_expression(), check_agg_arguments(), check_agglevels_and_constraints(), check_foreign_key(), check_hashjoinable(), check_mergejoinable(), check_primary_key(), clause_selectivity(), clauselist_selectivity_simple(), coerce_record_to_complex(), count_rowexpr_columns(), CreateTrigger(), does_not_exist_skipping(), ECPGdescribe(), ECPGdo(), ECPGget_desc(), ECPGset_desc(), eqjoinsel(), eqsel_internal(), error(), eval_const_expressions_mutator(), evalStandardFunc(), evaluate_function(), ExecEvalFuncExprStrictFusage(), ExecInterpExpr(), ExecJustApplyFuncToCase(), executeQueryOrDie(), expand_function_arguments(), expression_tree_walker(), find_duplicate_ors(), flushbuffer(), FuncnameGetCandidates(), function_selectivity(), gen_partprune_steps_internal(), generate_series_int4_support(), generate_series_int8_support(), get_call_expr_arg_stable(), get_call_expr_argtype(), get_from_clause_item(), get_notclausearg(), get_oper_expr(), get_qual_for_hash(), get_rule_expr(), get_simple_binary_op_name(), inline_function(), insert_username(), isSimpleNode(), json_build_array(), json_build_object(), jsonb_build_array(), jsonb_build_object(), JumbleExpr(), llvm_compile_expr(), lo_manage(), ltreeparentsel(), make_jsp_entry_node(), make_jsp_expr_node(), make_op(), make_restrictinfo_internal(), make_scalar_array_op(), make_sub_restrictinfos(), makeBoolExpr(), makeFuncCall(), makeFuncExpr(), match_clause_to_partition_key(), MemoryContextSwitchTo(), moddatetime(), neqjoinsel(), networkjoinsel(), networksel(), parallel_exec_prog(), parallel_transfer_all_new_dbs(), patternsel(), pg_fatal(), pg_fprintf(), pg_get_object_address(), pg_get_ruledef_worker(), pg_get_viewdef_worker(), pg_identify_object_as_address(), pg_log(), pg_printf(), pg_snprintf(), pg_sprintf(), PLy_exception_set_with_details(), PLy_function_build_args(), PLy_generate_spi_exceptions(), PLy_spi_exception_set(), pqInternalNotice(), prep_status(), printfPQExpBuffer(), process_sublinks_mutator(), psprintf(), psql_command(), pull_ands(), pull_ors(), pull_up_sublinks_qual_recurse(), rangesel(), raw_expression_tree_walker(), reorder_function_arguments(), report_invalid_record(), report_status(), scalararraysel(), scalarineqsel_wrapper(), SetWALFileNameForCleanup(), simplify_function(), substitute_actual_parameters(), substitute_actual_srf_parameters(), tarPrintf(), test_support_func(), testexpr_is_hashable(), transformAExprBetween(), transformAExprIn(), transformAExprOp(), transformBoolExpr(), transformCoalesceExpr(), transformFuncCall(), transformGroupingFunc(), transformMinMaxExpr(), tsmatchsel(), ttdummy(), and warning().

◆ chr

generate_unaccent_rules.chr = unichr

Definition at line 49 of file generate_unaccent_rules.py.

◆ COMBINING_MARK_RANGES

tuple generate_unaccent_rules.COMBINING_MARK_RANGES
Initial value:
1 = ((0x0300, 0x0362), # Mn: Accents, IPA
2  (0x20dd, 0x20E0), # Me: Symbols
3  (0x20e2, 0x20e4),)

Definition at line 75 of file generate_unaccent_rules.py.

◆ dest

generate_unaccent_rules.dest

Definition at line 284 of file generate_unaccent_rules.py.

Referenced by _SPI_execute_plan(), begin_tup_output_tupdesc(), BeginCopy(), big5_to_euc_tw(), big5_to_mic(), big5_to_utf8(), brin_copy_tuple(), compute_scalar_stats(), CreateQueryDesc(), CreateReplicationSlot(), euc_cn_to_mic(), euc_cn_to_utf8(), euc_jis_2004_to_shift_jis_2004(), euc_jis_2004_to_utf8(), euc_jp_to_mic(), euc_jp_to_sjis(), euc_jp_to_utf8(), euc_kr_to_mic(), euc_kr_to_utf8(), euc_tw_to_big5(), euc_tw_to_mic(), euc_tw_to_utf8(), exec_execute_message(), exec_replication_command(), exec_simple_query(), ExecCreateTableAs(), ExecRefreshMatView(), execute_sql_string(), ExplainOnePlan(), gb18030_to_utf8(), gbk_to_utf8(), hashline_number(), IdentifySystem(), iso8859_1_to_utf8(), iso8859_to_utf8(), iso_to_koi8r(), iso_to_mic(), iso_to_win1251(), iso_to_win866(), johab_to_utf8(), koi8r_to_iso(), koi8r_to_mic(), koi8r_to_utf8(), koi8r_to_win1251(), koi8r_to_win866(), koi8u_to_utf8(), latin1_to_mic(), latin2_to_mic(), latin2_to_win1250(), latin3_to_mic(), latin4_to_mic(), mic_to_big5(), mic_to_euc_cn(), mic_to_euc_jp(), mic_to_euc_kr(), mic_to_euc_tw(), mic_to_iso(), mic_to_koi8r(), mic_to_latin1(), mic_to_latin2(), mic_to_latin3(), mic_to_latin4(), mic_to_sjis(), mic_to_win1250(), mic_to_win1251(), mic_to_win866(), partition_bounds_copy(), pglz_decompress(), PortalRunSelect(), PostmasterMarkPIDForWorkerNotify(), postquel_start(), PQcopyResult(), printtup_create_DR(), process_pipe_input(), ProcessUtility(), sepgsql_utility_command(), shift_jis_2004_to_euc_jis_2004(), shift_jis_2004_to_utf8(), sjis_to_euc_jp(), sjis_to_mic(), sjis_to_utf8(), standard_ExecutorRun(), StartReplication(), store_coded_char(), str_numth(), uhc_to_utf8(), utf8_to_big5(), utf8_to_euc_cn(), utf8_to_euc_jis_2004(), utf8_to_euc_jp(), utf8_to_euc_kr(), utf8_to_euc_tw(), utf8_to_gb18030(), utf8_to_gbk(), utf8_to_iso8859(), utf8_to_iso8859_1(), utf8_to_johab(), utf8_to_koi8r(), utf8_to_koi8u(), utf8_to_shift_jis_2004(), utf8_to_sjis(), utf8_to_uhc(), utf8_to_win(), win1250_to_latin2(), win1250_to_mic(), win1251_to_iso(), win1251_to_koi8r(), win1251_to_mic(), win1251_to_win866(), win866_to_iso(), win866_to_koi8r(), win866_to_mic(), win866_to_win1251(), and win_to_utf8().

◆ help

generate_unaccent_rules.help

Definition at line 284 of file generate_unaccent_rules.py.

Referenced by helpSQL().

◆ parser

generate_unaccent_rules.parser = argparse.ArgumentParser(description='This script builds unaccent.rules on standard output when given the contents of UnicodeData.txt and Latin-ASCII.xml given as arguments.')

Definition at line 283 of file generate_unaccent_rules.py.

◆ PLAIN_LETTER_RANGES

tuple generate_unaccent_rules.PLAIN_LETTER_RANGES
Initial value:
1 = ((ord('a'), ord('z')), # Latin lower case
2  (ord('A'), ord('Z')), # Latin upper case
3  (0x03b1, 0x03c9), # GREEK SMALL LETTER ALPHA, GREEK SMALL LETTER OMEGA
4  (0x0391, 0x03a9))

Definition at line 62 of file generate_unaccent_rules.py.

◆ required

◆ stdout

generate_unaccent_rules.stdout

Definition at line 46 of file generate_unaccent_rules.py.

Referenced by _allocAH(), BeginCopyTo(), bootstrap_template1(), check_ok(), CloseArchive(), ClosePager(), cluster_all_databases(), create_data_directory(), create_xlog_or_symlink(), DebugFileOpen(), do_copy(), echo_hidden_command(), errfinish(), exec_command_echo(), exec_command_print(), exec_command_prompt(), exec_command_sf_sv(), exec_prog(), ExecQueryTuples(), ExecQueryUsingCursor(), fork_process(), generate_partitionwise_join_paths(), geqo(), get_control_data(), get_su_pwd(), gets_interactive(), handleCopyIn(), header(), helpSQL(), InitArchiveFmt_Custom(), InitArchiveFmt_Tar(), initialize_data_directory(), InteractiveBackend(), IsPagerNeeded(), log_pre_callback(), main(), MainLoop(), OpenPipeStream(), openQueryOutputFile(), PageOutput(), perform_spin_delay(), pg_log_generic_v(), pg_log_v(), pg_printf(), pg_regcomp(), pg_vprintf(), pipe_read_line(), plpgsql_dumptree(), popen_check(), pprint(), PQdisplayTuples(), PQprint(), print(), print_aligned_text(), print_aligned_vertical(), print_filemap(), print_msg(), PSQLexec(), ReceiveTarFile(), reindex_all_databases(), report_error_message(), report_multiple_error_messages(), run_permutation(), runPgDump(), SendQuery(), SetOutput(), setQFout(), setup_config(), spawn_process(), sql_exec(), start_postmaster(), startup_hacks(), status(), status_end(), stop_postmaster(), StreamLogicalLog(), SysLogger_Start(), SysLoggerMain(), test_config_settings(), test_file_descriptor_sync(), test_non_sync(), test_open_sync(), test_sync(), TopoSort(), update_spins_per_delay(), vacuum_one_database(), vacuumlo(), and writezone().

◆ str

generate_unaccent_rules.str

Definition at line 284 of file generate_unaccent_rules.py.

Referenced by _ShowOption(), appendByteaLiteral(), appendStringLiteral(), ArrayCount(), be_lo_from_bytea(), be_lo_put(), bitposition(), bits_to_text(), blowfish_setkey(), bmsToString(), boolin(), booltext(), box_in(), bpcharrecv(), bytealike(), byteanlike(), byteaoctetlen(), cash_in(), char2wchar(), check_recovery_target_time(), cidin(), circle_in(), circle_out(), citext_hash(), citext_hash_extended(), complex_in(), concat_internal(), conninfo_uri_decode(), cstring_in(), cstring_out(), cstring_recv(), cstring_send(), cube_in(), date_in(), DCH_to_char(), deccvasc(), DecodeDate(), DecodeISO8601Interval(), DecodePosixTimezone(), dectoasc(), defGetStringList(), dtcvasc(), ean13_in(), ecpg_build_params(), ecpg_get_data(), ecpg_store_input(), ECPGconnect(), ECPGdump_a_type(), EncodeInterval(), EncodeTimezone(), err_gettext(), ExecInterpExpr(), ExecuteSqlCommandBuf(), ExplainPrintSettings(), ExplainProperty(), ExplainPropertyList(), fetch_function_defaults(), fill_str(), fillTrgm(), find_word(), findchar(), findchar2(), flush_pipe_input(), flushbuffer(), format_node_dump(), func_get_detail(), generate_trgm_only(), generate_wildcard_trgm(), get_collation_actual_version(), get_str_from_var(), get_str_from_var_sci(), get_wildcard_part(), GetMessageEncoding(), int2int4_sum(), int8in(), interpret_func_parallel(), interpret_func_volatility(), interval_in(), is_an_int(), isbn_in(), ismn_in(), issn_in(), jsonb_object(), jsonb_object_two_arg(), jsonb_pretty(), jsonb_recv(), JsonbValue_to_SV(), jsonpath_recv(), libpqConnect(), line_in(), lowerstr_with_len(), lseg_in(), macaddr8_in(), macaddr_in(), main(), make_trigrams(), make_tsvector(), makeBitString(), makeCompoundFlags(), makeString(), map_sql_value_to_xml_value(), mb_strchr(), mp_int_read_cstring(), mp_int_sqrt(), mp_int_to_string(), mxid_to_string(), nameiclike(), nameicnlike(), namelike(), namenlike(), namerecv(), namestrcpy(), nodeToString(), NUM_cache(), numeric_in(), numeric_normalize(), numeric_out(), numeric_out_sci(), object_to_string(), pair_decode(), parse_args(), parse_format(), parse_hba_line(), parse_snapshot(), path_decode(), path_encode(), path_in(), pg_collation_actual_version(), pg_dependencies_out(), pg_get_expr_worker(), pg_get_function_arg_default(), pg_get_indexdef_worker(), pg_get_partkeydef_worker(), pg_lsn_in(), pg_ltostr(), pg_ltostr_zeropad(), pg_ndistinct_out(), pg_plan_query(), pg_rewrite_query(), pg_size_bytes(), pg_strerror_r(), pg_strfromd(), pg_vsnprintf(), pg_vsprintf(), PGTYPEStimestamp_defmt_scan(), placeChar(), plperl_sv_to_datum(), plperl_sv_to_literal(), plpgsql_scanner_init(), PLy_quote_ident(), PLy_quote_literal(), PLy_quote_nullable(), PLyBytes_FromBytea(), PLyDecimal_FromNumeric(), PLyNumber_ToJsonbValue(), PLyObject_FromJsonbValue(), PLyObject_ToScalar(), PLyString_ToComposite(), point_in(), poly_in(), populate_scalar(), pq_getmsgrawstring(), pq_getmsgstring(), pq_getmsgtext(), pq_sendint(), PQenv2encoding(), PQescapeInternal(), pretty_format_node_dump(), print_function_arguments(), printsimple(), process_pipe_input(), pset_quoted_string(), pts_error_callback(), quote_ident(), read_tablespace_map(), regexp_fixed_prefix(), replace_text(), RS_compile(), RS_execute(), RS_isRegis(), scanint8(), seg_in(), SendXlogRecPtrResult(), set_var_from_str(), ShowUsage(), SPI_sql_row_to_xmlelement(), string2ean(), stringToNode(), stringToNodeInternal(), strlen_max_width(), strnlen(), strtoint64(), text_format(), text_format_string_conversion(), text_left(), text_reverse(), text_right(), texticlike(), texticnlike(), textlen(), textlike(), textnlike(), textoctetlen(), textpos(), textrecv(), tidin(), time_in(), timestamp_in(), timestamptz_in(), timetz_in(), TParserInit(), txid_snapshot_in(), txid_snapshot_out(), unaccent_dict(), unknownin(), unknownout(), unknownrecv(), unknownsend(), upc_in(), varcharrecv(), wait_result_to_str(), widget_in(), widget_out(), xidin(), xml_is_document(), xml_out_internal(), xml_recv(), xmlconcat(), xmlelement(), xmlroot(), XmlTableGetValue(), and XmlTableSetDocument().

◆ True

generate_unaccent_rules.True

Definition at line 284 of file generate_unaccent_rules.py.

◆ type

generate_unaccent_rules.type

Definition at line 284 of file generate_unaccent_rules.py.

Referenced by _copySQLValueFunction(), _copyValue(), _copyXmlExpr(), _equalList(), _equalSQLValueFunction(), _equalValue(), _equalXmlExpr(), _getObjectDescription(), _outSQLValueFunction(), _outXmlExpr(), _readSQLValueFunction(), _readXmlExpr(), addJsonbToParseState(), addtt(), allocate_reloption(), AutoVacuumRequestWork(), brin_page_init(), brin_page_type(), build_mss(), cannotCastJsonbValue(), check_foreign_key(), CreateStatistics(), datum_to_jsonb(), DecodeDate(), DecodeDateTime(), DecodeInterval(), DecodePosixTimezone(), DecodeSpecial(), DecodeTimeOnly(), DecodeTimezoneAbbrev(), DecodeUnits(), dependency_degree(), dumpDefaultACL(), ean2isn(), ean2string(), ecpg_do_prologue(), ECPGdescribe(), ECPGget_desc(), ECPGmake_array_type(), ECPGmake_simple_type(), ECPGmake_struct_member(), ECPGstruct_member_dup(), enable_timeouts(), evalStandardFunc(), exprCollation(), exprSetCollation(), exprType(), extract_jsp_bool_expr(), fillTypeDesc(), findoprnd_recurse(), flushbuffer(), fmtfloat(), ForwardSyncRequest(), get_command_type(), get_docrep(), get_typdefault(), get_type(), gin_extract_tsquery(), ginint4_queryextract(), hash_page_type(), init_compress(), init_custom_variable(), init_litdata_packet(), interval_part(), interval_trunc(), isDataGram(), isSimpleNode(), iterate_jsonb_values(), json_typeof(), jsonb_agg_transfn(), jsonb_object_agg_transfn(), jsonb_strip_nulls(), JsonbToCStringWorker(), JsonbType(), libpqProcessFileList(), main(), make_jsp_expr_node(), makepol(), ndistinct_for_combination(), new_list(), new_variable(), NIAddAffix(), NIImportOOAffixes(), nodeRead(), outzone(), parse_jsonb_index_flags(), parse_sane_timezone(), pg_decrypt(), pg_decrypt_iv(), pg_encrypt(), pg_encrypt_iv(), pg_event_trigger_ddl_commands(), pg_get_object_address(), pg_prewarm(), pgstat_reset_single_counter(), PGTYPEStimestamp_defmt_scan(), PLy_subtransaction_exit(), prepare_column_cache(), process_source_file(), process_target_file(), prs_setup_firstcall(), radius_add_attribute(), reindex_one_database(), relabel_to_typmod(), sendCommand(), sqlda_common_total_size(), string2ean(), testprs_getlexeme(), time_part(), timestamp_part(), timestamp_trunc(), timestamp_zone(), timestamptz_part(), timestamptz_trunc_internal(), timestamptz_trunc_zone(), timestamptz_zone(), timetz_part(), timetz_zone(), transform_jsonb_string_values(), typeidTypeRelid(), typeOrDomainTypeRelid(), and writezone().