MCPcopy Create free account
hub / github.com/apache/cloudberry / pltcl_construct_errorCode

Function pltcl_construct_errorCode

src/pl/tcl/pltcl.c:1832–1971  ·  view source on GitHub ↗

* pltcl_construct_errorCode() - construct a Tcl errorCode * list with detailed information from the PostgreSQL server **********************************************************************/

Source from the content-addressed store, hash-verified

1830 * list with detailed information from the PostgreSQL server
1831 **********************************************************************/
1832static void
1833pltcl_construct_errorCode(Tcl_Interp *interp, ErrorData *edata)
1834{
1835 Tcl_Obj *obj = Tcl_NewObj();
1836
1837 Tcl_ListObjAppendElement(interp, obj,
1838 Tcl_NewStringObj("POSTGRES", -1));
1839 Tcl_ListObjAppendElement(interp, obj,
1840 Tcl_NewStringObj(PG_VERSION, -1));
1841 Tcl_ListObjAppendElement(interp, obj,
1842 Tcl_NewStringObj("SQLSTATE", -1));
1843 Tcl_ListObjAppendElement(interp, obj,
1844 Tcl_NewStringObj(unpack_sql_state(edata->sqlerrcode), -1));
1845 Tcl_ListObjAppendElement(interp, obj,
1846 Tcl_NewStringObj("condition", -1));
1847 Tcl_ListObjAppendElement(interp, obj,
1848 Tcl_NewStringObj(pltcl_get_condition_name(edata->sqlerrcode), -1));
1849 Tcl_ListObjAppendElement(interp, obj,
1850 Tcl_NewStringObj("message", -1));
1851 UTF_BEGIN;
1852 Tcl_ListObjAppendElement(interp, obj,
1853 Tcl_NewStringObj(UTF_E2U(edata->message), -1));
1854 UTF_END;
1855 if (edata->detail)
1856 {
1857 Tcl_ListObjAppendElement(interp, obj,
1858 Tcl_NewStringObj("detail", -1));
1859 UTF_BEGIN;
1860 Tcl_ListObjAppendElement(interp, obj,
1861 Tcl_NewStringObj(UTF_E2U(edata->detail), -1));
1862 UTF_END;
1863 }
1864 if (edata->hint)
1865 {
1866 Tcl_ListObjAppendElement(interp, obj,
1867 Tcl_NewStringObj("hint", -1));
1868 UTF_BEGIN;
1869 Tcl_ListObjAppendElement(interp, obj,
1870 Tcl_NewStringObj(UTF_E2U(edata->hint), -1));
1871 UTF_END;
1872 }
1873 if (edata->context)
1874 {
1875 Tcl_ListObjAppendElement(interp, obj,
1876 Tcl_NewStringObj("context", -1));
1877 UTF_BEGIN;
1878 Tcl_ListObjAppendElement(interp, obj,
1879 Tcl_NewStringObj(UTF_E2U(edata->context), -1));
1880 UTF_END;
1881 }
1882 if (edata->schema_name)
1883 {
1884 Tcl_ListObjAppendElement(interp, obj,
1885 Tcl_NewStringObj("schema", -1));
1886 UTF_BEGIN;
1887 Tcl_ListObjAppendElement(interp, obj,
1888 Tcl_NewStringObj(UTF_E2U(edata->schema_name), -1));
1889 UTF_END;

Callers 4

pltcl_elogFunction · 0.85
pltcl_subtrans_abortFunction · 0.85
pltcl_commitFunction · 0.85
pltcl_rollbackFunction · 0.85

Calls 2

pltcl_get_condition_nameFunction · 0.85
unpack_sql_stateFunction · 0.50

Tested by

no test coverage detected