# `to_pinyin` (function)


- **Type:** FUNCTION
- **Returns:** `varchar(255)`
- **Deterministic:** NO
- **SQL data access:** CONTAINS SQL

## Parameters

| # | Mode | Name | Type |
|---|---|---|---|
| 1 | IN | `NAME` | `varchar(255)` |

## Body

_Body is not pre-cached. To inspect: `mysql --defaults-file=~/.my.cnf -e 'SHOW CREATE FUNCTION `to_pinyin`'`._

## Narrative

**Business context:** Converts a Chinese string to its lower-case pinyin transliteration. Intended for building search-friendly pinyin keys for customer/product/material names (so a user typing `bjly` finds `北京立扬`). Relies on the `t_base_pinyin` lookup table that maps GBK code-points to pinyin syllables.

**What it does:** hex-encodes the input, walks the byte pairs. For each pair: if the high byte > 128 (CJK range) it computes a GBK code value and looks up the matching `pin_yin_` in `t_base_pinyin` using the `CODE_ ASC LIMIT 1` "first ≥ key" rule, appends it, advances 4 hex chars; otherwise treats the pair as an ASCII char and appends it directly. Returns the lower-cased pinyin string.

**Invocation:** Status: appears orphaned. No caller found in any channel (form-master, gdsmodule hooks, other routines with a `to_pinyin(` invocation, xly-src grep). Live pinyin generation in xly happens Java-side (`PinyinUtil`/`HanyuPinyinHelper`) — this SQL-side polyfill was likely written as a fallback that was never wired up. Same family as orphan `FUN_GET_to_pinyin` (session 4). Candidate for maintainer audit / deletion.
