* pltcl_construct_errorCode() - construct a Tcl errorCode * list with detailed information from the PostgreSQL server **********************************************************************/
| 1830 | * list with detailed information from the PostgreSQL server |
| 1831 | **********************************************************************/ |
| 1832 | static void |
| 1833 | pltcl_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; |
no test coverage detected