Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Make everything compile warning-free with -Wall -Wextra |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
b2e8ac5a8665a85d51180131662be724 |
User & Date: | jan.nijtmans 2020-02-12 12:42:58.895 |
Context
2020-02-12
| ||
12:43 | Version 1.1.1 -> 1.1.2 check-in: 396b64f671 user: jan.nijtmans tags: trunk | |
12:42 | Make everything compile warning-free with -Wall -Wextra check-in: b2e8ac5a86 user: jan.nijtmans tags: trunk | |
2020-02-11
| ||
11:12 | TEA update check-in: 18836d9439 user: jan.nijtmans tags: trunk | |
Changes
Changes to generic/tdbcmysql.c.
︙ | ︙ | |||
1440 1441 1442 1443 1444 1445 1446 | * Returns an empty result if successful, and throws an error otherwise. * *----------------------------------------------------------------------------- */ static int ConnectionBegintransactionMethod( | | > > | 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 | * Returns an empty result if successful, and throws an error otherwise. * *----------------------------------------------------------------------------- */ static int ConnectionBegintransactionMethod( ClientData dummy, /* Unused */ Tcl_Interp* interp, /* Tcl interpreter */ Tcl_ObjectContext objectContext, /* Object context */ int objc, /* Parameter count */ Tcl_Obj *const objv[] /* Parameter vector */ ) { (void)dummy; Tcl_Object thisObject = Tcl_ObjectContextObject(objectContext); /* The current connection object */ ConnectionData* cdata = (ConnectionData*) Tcl_ObjectGetMetadata(thisObject, &connectionDataType); /* Check parameters */ |
︙ | ︙ | |||
1504 1505 1506 1507 1508 1509 1510 | * Returns the list of tables * *----------------------------------------------------------------------------- */ static int ConnectionColumnsMethod( | | > | 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 | * Returns the list of tables * *----------------------------------------------------------------------------- */ static int ConnectionColumnsMethod( ClientData dummy, /* Completion type */ Tcl_Interp* interp, /* Tcl interpreter */ Tcl_ObjectContext objectContext, /* Object context */ int objc, /* Parameter count */ Tcl_Obj *const objv[] /* Parameter vector */ ) { Tcl_Object thisObject = Tcl_ObjectContextObject(objectContext); /* The current connection object */ ConnectionData* cdata = (ConnectionData*) Tcl_ObjectGetMetadata(thisObject, &connectionDataType); /* Instance data */ PerInterpData* pidata = cdata->pidata; /* Per-interpreter data */ Tcl_Obj** literals = pidata->literals; /* Literal pool */ const char* patternStr; /* Pattern to match table names */ MYSQL_RES* results; /* Result set */ Tcl_Obj* retval; /* List of table names */ Tcl_Obj* name; /* Name of a column */ Tcl_Obj* attrs; /* Attributes of the column */ Tcl_HashEntry* entry; /* Hash entry for data type */ (void)dummy; /* Check parameters */ if (objc == 3) { patternStr = NULL; } else if (objc == 4) { patternStr = Tcl_GetString(objv[3]); |
︙ | ︙ | |||
1606 1607 1608 1609 1610 1611 1612 | * otherwise. * *----------------------------------------------------------------------------- */ static int ConnectionCommitMethod( | | > | 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 | * otherwise. * *----------------------------------------------------------------------------- */ static int ConnectionCommitMethod( ClientData dummy, /* Not used */ Tcl_Interp* interp, /* Tcl interpreter */ Tcl_ObjectContext objectContext, /* Object context */ int objc, /* Parameter count */ Tcl_Obj *const objv[] /* Parameter vector */ ) { Tcl_Object thisObject = Tcl_ObjectContextObject(objectContext); /* The current connection object */ ConnectionData* cdata = (ConnectionData*) Tcl_ObjectGetMetadata(thisObject, &connectionDataType); /* Instance data */ my_bool rc; /* MySQL status return */ (void)dummy; /* Check parameters */ if (objc != 2) { Tcl_WrongNumArgs(interp, 2, objv, ""); return TCL_ERROR; } |
︙ | ︙ | |||
1681 1682 1683 1684 1685 1686 1687 | * Other options supported by the constructor are here in read-only * mode; any attempt to change them will result in an error. * *----------------------------------------------------------------------------- */ static int ConnectionConfigureMethod( | | > > | 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 | * Other options supported by the constructor are here in read-only * mode; any attempt to change them will result in an error. * *----------------------------------------------------------------------------- */ static int ConnectionConfigureMethod( ClientData dummy, Tcl_Interp* interp, Tcl_ObjectContext objectContext, int objc, Tcl_Obj *const objv[] ) { Tcl_Object thisObject = Tcl_ObjectContextObject(objectContext); /* The current connection object */ int skip = Tcl_ObjectContextSkippedArgs(objectContext); /* Number of arguments to skip */ ConnectionData* cdata = (ConnectionData*) Tcl_ObjectGetMetadata(thisObject, &connectionDataType); (void)dummy; /* Instance data */ return ConfigureConnection(cdata, interp, objc, objv, skip); } /* *----------------------------------------------------------------------------- * |
︙ | ︙ | |||
1727 1728 1729 1730 1731 1732 1733 | * Whatever the SQL statement does. * *----------------------------------------------------------------------------- */ static int ConnectionEvaldirectMethod( | | > | 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 | * Whatever the SQL statement does. * *----------------------------------------------------------------------------- */ static int ConnectionEvaldirectMethod( ClientData dummy, /* Unused */ Tcl_Interp* interp, /* Tcl interpreter */ Tcl_ObjectContext objectContext, /* Object context */ int objc, /* Parameter count */ Tcl_Obj *const objv[]) /* Parameter vector */ { Tcl_Object thisObject = Tcl_ObjectContextObject(objectContext); /* Current connection object */ ConnectionData* cdata = (ConnectionData*) Tcl_ObjectGetMetadata(thisObject, &connectionDataType); /* Instance data */ int nColumns; /* Number of columns in the result set */ MYSQL_RES* resultPtr; /* MySQL result set */ MYSQL_ROW rowPtr; /* One row of the result set */ unsigned long* lengths; /* Lengths of the fields in a row */ Tcl_Obj* retObj; /* Result set as a Tcl list */ Tcl_Obj* rowObj; /* One row of the result set as a Tcl list */ Tcl_Obj* fieldObj; /* One field of the row */ int i; (void)dummy; /* Check parameters */ if (objc != 3) { Tcl_WrongNumArgs(interp, 2, objv, ""); return TCL_ERROR; } |
︙ | ︙ | |||
1830 1831 1832 1833 1834 1835 1836 | * Returns a Boolean value. * *----------------------------------------------------------------------------- */ static int ConnectionNeedCollationInfoMethod( | | > | 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 | * Returns a Boolean value. * *----------------------------------------------------------------------------- */ static int ConnectionNeedCollationInfoMethod( ClientData dummy, /* Not used */ Tcl_Interp* interp, /* Tcl interpreter */ Tcl_ObjectContext objectContext, /* Object context */ int objc, /* Parameter count */ Tcl_Obj *const objv[] /* Parameter vector */ ) { Tcl_Object thisObject = Tcl_ObjectContextObject(objectContext); /* The current connection object */ ConnectionData* cdata = (ConnectionData*) Tcl_ObjectGetMetadata(thisObject, &connectionDataType); /* Instance data */ (void)dummy; if (objc != 2) { Tcl_WrongNumArgs(interp, 2, objv, ""); return TCL_ERROR; } Tcl_SetObjResult(interp, Tcl_NewWideIntObj(cdata->collationSizes == NULL)); |
︙ | ︙ | |||
1874 1875 1876 1877 1878 1879 1880 | * otherwise. * *----------------------------------------------------------------------------- */ static int ConnectionRollbackMethod( | | > | 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 | * otherwise. * *----------------------------------------------------------------------------- */ static int ConnectionRollbackMethod( ClientData dummy, /* Not used */ Tcl_Interp* interp, /* Tcl interpreter */ Tcl_ObjectContext objectContext, /* Object context */ int objc, /* Parameter count */ Tcl_Obj *const objv[] /* Parameter vector */ ) { Tcl_Object thisObject = Tcl_ObjectContextObject(objectContext); /* The current connection object */ ConnectionData* cdata = (ConnectionData*) Tcl_ObjectGetMetadata(thisObject, &connectionDataType); /* Instance data */ my_bool rc; /* Result code from MySQL operations */ (void)dummy; /* Check parameters */ if (objc != 2) { Tcl_WrongNumArgs(interp, 2, objv, ""); return TCL_ERROR; } |
︙ | ︙ | |||
1942 1943 1944 1945 1946 1947 1948 | * is easier to do from Tcl than C. This method passes in the results. * *----------------------------------------------------------------------------- */ static int ConnectionSetCollationInfoMethod( | | > | 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 | * is easier to do from Tcl than C. This method passes in the results. * *----------------------------------------------------------------------------- */ static int ConnectionSetCollationInfoMethod( ClientData dummy, /* Not used */ Tcl_Interp* interp, /* Tcl interpreter */ Tcl_ObjectContext objectContext, /* Object context */ int objc, /* Parameter count */ Tcl_Obj *const objv[] /* Parameter vector */ ) { Tcl_Object thisObject = Tcl_ObjectContextObject(objectContext); /* The current connection object */ ConnectionData* cdata = (ConnectionData*) Tcl_ObjectGetMetadata(thisObject, &connectionDataType); /* Instance data */ int listLen; Tcl_Obj* objPtr; unsigned int collationNum; int i; int t; (void)dummy; if (objc <= 2) { Tcl_WrongNumArgs(interp, 2, objv, "{collationNum size}..."); return TCL_ERROR; } if (Tcl_ListObjIndex(interp, objv[2], 0, &objPtr) != TCL_OK) { return TCL_ERROR; |
︙ | ︙ | |||
2028 2029 2030 2031 2032 2033 2034 | * Returns the list of tables * *----------------------------------------------------------------------------- */ static int ConnectionTablesMethod( | | > | 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 | * Returns the list of tables * *----------------------------------------------------------------------------- */ static int ConnectionTablesMethod( ClientData dummy, /* Not used */ Tcl_Interp* interp, /* Tcl interpreter */ Tcl_ObjectContext objectContext, /* Object context */ int objc, /* Parameter count */ Tcl_Obj *const objv[] /* Parameter vector */ ) { Tcl_Object thisObject = Tcl_ObjectContextObject(objectContext); /* The current connection object */ ConnectionData* cdata = (ConnectionData*) Tcl_ObjectGetMetadata(thisObject, &connectionDataType); /* Instance data */ Tcl_Obj** literals = cdata->pidata->literals; /* Literal pool */ const char* patternStr = NULL; /* Pattern to match table names */ MYSQL_RES* results = NULL; /* Result set */ MYSQL_ROW row = NULL; /* Row in the result set */ int status = TCL_OK; /* Return status */ Tcl_Obj* retval = NULL; /* List of table names */ (void)dummy; /* Check parameters */ if (objc == 2) { patternStr = NULL; } else if (objc == 3) { patternStr = Tcl_GetString(objv[2]); |
︙ | ︙ | |||
2130 2131 2132 2133 2134 2135 2136 | * refcounts accurate * *----------------------------------------------------------------------------- */ static int CloneCmd( | | > > | 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 | * refcounts accurate * *----------------------------------------------------------------------------- */ static int CloneCmd( Tcl_Interp* dummy, /* Tcl interpreter */ ClientData oldClientData, /* Environment handle to be discarded */ ClientData* newClientData /* New environment handle to be used */ ) { (void)dummy; *newClientData = oldClientData; return TCL_OK; } /* *----------------------------------------------------------------------------- * |
︙ | ︙ | |||
2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 | static int CloneConnection( Tcl_Interp* interp, /* Tcl interpreter for error reporting */ ClientData metadata, /* Metadata to be cloned */ ClientData* newMetaData /* Where to put the cloned metadata */ ) { Tcl_SetObjResult(interp, Tcl_NewStringObj("MYSQL connections are not clonable", -1)); return TCL_ERROR; } /* *----------------------------------------------------------------------------- | > > > | 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 | static int CloneConnection( Tcl_Interp* interp, /* Tcl interpreter for error reporting */ ClientData metadata, /* Metadata to be cloned */ ClientData* newMetaData /* Where to put the cloned metadata */ ) { (void)metadata; (void)newMetaData; Tcl_SetObjResult(interp, Tcl_NewStringObj("MYSQL connections are not clonable", -1)); return TCL_ERROR; } /* *----------------------------------------------------------------------------- |
︙ | ︙ | |||
2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 | ) { Tcl_Obj* retval = Tcl_NewObj(); Tcl_HashTable names; /* Hash table to resolve name collisions */ Tcl_Obj* nameObj; /* Name of a result column */ int isNew; /* Flag == 1 if a result column is unique */ Tcl_HashEntry* entry; /* Hash table entry for a column name */ int count; /* Number used to disambiguate a column name */ Tcl_InitHashTable(&names, TCL_STRING_KEYS); if (result != NULL) { unsigned int fieldCount = mysql_num_fields(result); MYSQL_FIELD* fields = mysql_fetch_fields(result); unsigned int i; char numbuf[16]; | > | 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 | ) { Tcl_Obj* retval = Tcl_NewObj(); Tcl_HashTable names; /* Hash table to resolve name collisions */ Tcl_Obj* nameObj; /* Name of a result column */ int isNew; /* Flag == 1 if a result column is unique */ Tcl_HashEntry* entry; /* Hash table entry for a column name */ int count; /* Number used to disambiguate a column name */ (void)flags; Tcl_InitHashTable(&names, TCL_STRING_KEYS); if (result != NULL) { unsigned int fieldCount = mysql_num_fields(result); MYSQL_FIELD* fields = mysql_fetch_fields(result); unsigned int i; char numbuf[16]; |
︙ | ︙ | |||
2379 2380 2381 2382 2383 2384 2385 | * connection) in instance metadata. * *----------------------------------------------------------------------------- */ static int StatementConstructor( | | < > | 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 | * connection) in instance metadata. * *----------------------------------------------------------------------------- */ static int StatementConstructor( ClientData dummy, /* Not used */ Tcl_Interp* interp, /* Tcl interpreter */ Tcl_ObjectContext context, /* Object context */ int objc, /* Parameter count */ Tcl_Obj *const objv[] /* Parameter vector */ ) { Tcl_Object thisObject = Tcl_ObjectContextObject(context); /* The current statement object */ int skip = Tcl_ObjectContextSkippedArgs(context); /* Number of args to skip before the * payload arguments */ Tcl_Object connectionObject; /* The database connection as a Tcl_Object */ ConnectionData* cdata; /* The connection object's data */ StatementData* sdata; /* The statement's object data */ Tcl_Obj* tokens; /* The tokens of the statement to be prepared */ int tokenc; /* Length of the 'tokens' list */ Tcl_Obj** tokenv; /* Exploded tokens from the list */ Tcl_Obj* nativeSql; /* SQL statement mapped to native form */ char* tokenStr; /* Token string */ int tokenLen; /* Length of a token */ int nParams; /* Number of parameters of the statement */ int i; (void)dummy; /* Find the connection object, and get its data. */ thisObject = Tcl_ObjectContextObject(context); if (objc != skip+2) { Tcl_WrongNumArgs(interp, skip, objv, "connection statementText"); return TCL_ERROR; |
︙ | ︙ | |||
2541 2542 2543 2544 2545 2546 2547 | * * *----------------------------------------------------------------------------- */ static int StatementParamsMethod( | | > | 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 | * * *----------------------------------------------------------------------------- */ static int StatementParamsMethod( ClientData dummy, /* Not used */ Tcl_Interp* interp, /* Tcl interpreter */ Tcl_ObjectContext context, /* Object context */ int objc, /* Parameter count */ Tcl_Obj *const objv[] /* Parameter vector */ ) { Tcl_Object thisObject = Tcl_ObjectContextObject(context); /* The current statement object */ StatementData* sdata /* The current statement */ = (StatementData*) Tcl_ObjectGetMetadata(thisObject, &statementDataType); ConnectionData* cdata = sdata->cdata; PerInterpData* pidata = cdata->pidata; /* Per-interp data */ Tcl_Obj** literals = pidata->literals; /* Literal pool */ int nParams; /* Number of parameters to the statement */ Tcl_Obj* paramName; /* Name of a parameter */ Tcl_Obj* paramDesc; /* Description of one parameter */ Tcl_Obj* dataTypeName; /* Name of a parameter's data type */ Tcl_Obj* retVal; /* Return value from this command */ Tcl_HashEntry* typeHashEntry; int i; (void)dummy; if (objc != 2) { Tcl_WrongNumArgs(interp, 2, objv, ""); return TCL_ERROR; } retVal = Tcl_NewObj(); |
︙ | ︙ | |||
2629 2630 2631 2632 2633 2634 2635 | * Updates the description of the given parameter. * *----------------------------------------------------------------------------- */ static int StatementParamtypeMethod( | | | 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 | * Updates the description of the given parameter. * *----------------------------------------------------------------------------- */ static int StatementParamtypeMethod( ClientData dummy, /* Not used */ Tcl_Interp* interp, /* Tcl interpreter */ Tcl_ObjectContext context, /* Object context */ int objc, /* Parameter count */ Tcl_Obj *const objv[] /* Parameter vector */ ) { Tcl_Object thisObject = Tcl_ObjectContextObject(context); /* The current statement object */ |
︙ | ︙ | |||
2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 | Tcl_Obj* targetNameObj; /* Name of the ith parameter in the statement */ const char* targetName; /* Name of a candidate parameter in the * statement */ int matchCount = 0; /* Number of parameters matching the name */ Tcl_Obj* errorObj; /* Error message */ int i; /* Check parameters */ if (objc < 4) { goto wrongNumArgs; } | > | 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 | Tcl_Obj* targetNameObj; /* Name of the ith parameter in the statement */ const char* targetName; /* Name of a candidate parameter in the * statement */ int matchCount = 0; /* Number of parameters matching the name */ Tcl_Obj* errorObj; /* Error message */ int i; (void)dummy; /* Check parameters */ if (objc < 4) { goto wrongNumArgs; } |
︙ | ︙ | |||
2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 | static int CloneStatement( Tcl_Interp* interp, /* Tcl interpreter for error reporting */ ClientData metadata, /* Metadata to be cloned */ ClientData* newMetaData /* Where to put the cloned metadata */ ) { Tcl_SetObjResult(interp, Tcl_NewStringObj("MySQL statements are not clonable", -1)); return TCL_ERROR; } /* *----------------------------------------------------------------------------- | > > > | 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 | static int CloneStatement( Tcl_Interp* interp, /* Tcl interpreter for error reporting */ ClientData metadata, /* Metadata to be cloned */ ClientData* newMetaData /* Where to put the cloned metadata */ ) { (void)metadata; (void)newMetaData; Tcl_SetObjResult(interp, Tcl_NewStringObj("MySQL statements are not clonable", -1)); return TCL_ERROR; } /* *----------------------------------------------------------------------------- |
︙ | ︙ | |||
2843 2844 2845 2846 2847 2848 2849 | * contains an appropriate message. * *----------------------------------------------------------------------------- */ static int ResultSetConstructor( | | < | 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 | * contains an appropriate message. * *----------------------------------------------------------------------------- */ static int ResultSetConstructor( ClientData dummy, /* Not used */ Tcl_Interp* interp, /* Tcl interpreter */ Tcl_ObjectContext context, /* Object context */ int objc, /* Parameter count */ Tcl_Obj *const objv[] /* Parameter vector */ ) { Tcl_Object thisObject = Tcl_ObjectContextObject(context); /* The current result set object */ int skip = Tcl_ObjectContextSkippedArgs(context); /* Number of args to skip */ Tcl_Object statementObject; /* The current statement object */ ConnectionData* cdata; /* The MySQL connection object's data */ StatementData* sdata; /* The statement object's data */ |
︙ | ︙ | |||
2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 | int len; /* Length of a bound parameter */ int nColumns; /* Number of columns in the result set */ MYSQL_FIELD* fields = NULL; /* Description of columns of the result set */ MYSQL_BIND* resultBindings; /* Bindings of the columns of the result set */ unsigned long* resultLengths; /* Lengths of the columns of the result set */ int i; /* Check parameter count */ if (objc != skip+1 && objc != skip+2) { Tcl_WrongNumArgs(interp, skip, objv, "statement ?dictionary?"); return TCL_ERROR; } | > | 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 | int len; /* Length of a bound parameter */ int nColumns; /* Number of columns in the result set */ MYSQL_FIELD* fields = NULL; /* Description of columns of the result set */ MYSQL_BIND* resultBindings; /* Bindings of the columns of the result set */ unsigned long* resultLengths; /* Lengths of the columns of the result set */ int i; (void)dummy; /* Check parameter count */ if (objc != skip+1 && objc != skip+2) { Tcl_WrongNumArgs(interp, skip, objv, "statement ?dictionary?"); return TCL_ERROR; } |
︙ | ︙ | |||
3181 3182 3183 3184 3185 3186 3187 | * Returns the count of columns * *----------------------------------------------------------------------------- */ static int ResultSetColumnsMethod( | | > | 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 | * Returns the count of columns * *----------------------------------------------------------------------------- */ static int ResultSetColumnsMethod( ClientData dummy, /* Not used */ Tcl_Interp* interp, /* Tcl interpreter */ Tcl_ObjectContext context, /* Object context */ int objc, /* Parameter count */ Tcl_Obj *const objv[] /* Parameter vector */ ) { Tcl_Object thisObject = Tcl_ObjectContextObject(context); /* The current result set object */ ResultSetData* rdata = (ResultSetData*) Tcl_ObjectGetMetadata(thisObject, &resultSetDataType); StatementData* sdata = (StatementData*) rdata->sdata; (void)dummy; if (objc != 2) { Tcl_WrongNumArgs(interp, 2, objv, "?pattern?"); return TCL_ERROR; } Tcl_SetObjResult(interp, sdata->columnNames); |
︙ | ︙ | |||
3418 3419 3420 3421 3422 3423 3424 | * Returns a standard Tcl result giving the number of affected rows. * *----------------------------------------------------------------------------- */ static int ResultSetRowcountMethod( | | < > | 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 | * Returns a standard Tcl result giving the number of affected rows. * *----------------------------------------------------------------------------- */ static int ResultSetRowcountMethod( ClientData dummy, /* Not used */ Tcl_Interp* interp, /* Tcl interpreter */ Tcl_ObjectContext context, /* Object context */ int objc, /* Parameter count */ Tcl_Obj *const objv[] /* Parameter vector */ ) { Tcl_Object thisObject = Tcl_ObjectContextObject(context); /* The current result set object */ ResultSetData* rdata = (ResultSetData*) Tcl_ObjectGetMetadata(thisObject, &resultSetDataType); /* Data pertaining to the current result set */ (void)dummy; if (objc != 2) { Tcl_WrongNumArgs(interp, 2, objv, ""); return TCL_ERROR; } Tcl_SetObjResult(interp, Tcl_NewWideIntObj((Tcl_WideInt)(rdata->rowCount))); |
︙ | ︙ | |||
3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 | static int CloneResultSet( Tcl_Interp* interp, /* Tcl interpreter for error reporting */ ClientData metadata, /* Metadata to be cloned */ ClientData* newMetaData /* Where to put the cloned metadata */ ) { Tcl_SetObjResult(interp, Tcl_NewStringObj("MySQL result sets are not clonable", -1)); return TCL_ERROR; } /* | > > > | 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 | static int CloneResultSet( Tcl_Interp* interp, /* Tcl interpreter for error reporting */ ClientData metadata, /* Metadata to be cloned */ ClientData* newMetaData /* Where to put the cloned metadata */ ) { (void)metadata; (void)newMetaData; Tcl_SetObjResult(interp, Tcl_NewStringObj("MySQL result sets are not clonable", -1)); return TCL_ERROR; } /* |
︙ | ︙ |