| 1825 | |
| 1826 | |
| 1827 | void ExtEngineManager::setupAdminCharSet(thread_db* tdbb, IExternalEngine* engine, |
| 1828 | EngineAttachmentInfo* attInfo) |
| 1829 | { |
| 1830 | ContextManager<IExternalFunction> ctxManager(tdbb, attInfo, CS_UTF8); |
| 1831 | |
| 1832 | char charSetName[MAX_SQL_IDENTIFIER_SIZE] = "NONE"; |
| 1833 | |
| 1834 | FbLocalStatus status; |
| 1835 | engine->open(&status, attInfo->context, charSetName, MAX_SQL_IDENTIFIER_LEN); |
| 1836 | status.check(); |
| 1837 | |
| 1838 | charSetName[MAX_SQL_IDENTIFIER_LEN] = '\0'; |
| 1839 | |
| 1840 | if (!MET_get_char_coll_subtype(tdbb, &attInfo->adminCharSet, |
| 1841 | reinterpret_cast<const UCHAR*>(charSetName), |
| 1842 | static_cast<USHORT>(strlen(charSetName)))) |
| 1843 | { |
| 1844 | status_exception::raise( |
| 1845 | Arg::Gds(isc_charset_not_found) << |
| 1846 | Arg::Str(charSetName)); |
| 1847 | } |
| 1848 | } |
| 1849 | |
| 1850 | |
| 1851 | //--------------------- |