Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Make compile warning-free using -Wall -Wextra |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
c5e8844f6c212cc1c84bbd2d7c5f39bd |
User & Date: | jan.nijtmans 2020-02-12 12:48:03.806 |
Context
2020-02-12
| ||
12:49 | Version 1.1.1 -> 1.1.2 check-in: f2e47dca7a user: jan.nijtmans tags: trunk | |
12:48 | Make compile warning-free using -Wall -Wextra check-in: c5e8844f6c user: jan.nijtmans tags: trunk | |
2020-02-11
| ||
11:12 | TEA update check-in: 6154d6c927 user: jan.nijtmans tags: trunk | |
Changes
Changes to generic/tdbcpostgres.c.
︙ | ︙ | |||
694 695 696 697 698 699 700 701 702 703 704 705 706 707 | *----------------------------------------------------------------------------- */ static void DummyNoticeProcessor(void* clientData, const PGresult* message) { } /* *----------------------------------------------------------------------------- * * ExecSimpleQuery -- * | > > | 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 | *----------------------------------------------------------------------------- */ static void DummyNoticeProcessor(void* clientData, const PGresult* message) { (void)clientData; (void)message; } /* *----------------------------------------------------------------------------- * * ExecSimpleQuery -- * |
︙ | ︙ | |||
1333 1334 1335 1336 1337 1338 1339 | * Returns an empty result if successful, and throws an error otherwise. * *----------------------------------------------------------------------------- */ static int ConnectionBegintransactionMethod( | | > | 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 | * 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 */ ) { Tcl_Object thisObject = Tcl_ObjectContextObject(objectContext); /* The current connection object */ ConnectionData* cdata = (ConnectionData*) Tcl_ObjectGetMetadata(thisObject, &connectionDataType); (void)dummy; /* Check parameters */ if (objc != 2) { Tcl_WrongNumArgs(interp, 2, objv, ""); return TCL_ERROR; } |
︙ | ︙ | |||
1390 1391 1392 1393 1394 1395 1396 | * otherwise. * *----------------------------------------------------------------------------- */ static int ConnectionCommitMethod( | | > | 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 | * 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 */ (void)dummy; /* Check parameters */ if (objc != 2) { Tcl_WrongNumArgs(interp, 2, objv, ""); return TCL_ERROR; } |
︙ | ︙ | |||
1447 1448 1449 1450 1451 1452 1453 | * Returns the list of tables * *----------------------------------------------------------------------------- */ static int ConnectionColumnsMethod( | | | 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 | * Returns the list of tables * *----------------------------------------------------------------------------- */ static int ConnectionColumnsMethod( 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 */ |
︙ | ︙ | |||
1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 | char* columnName; /* Name of the column */ Oid typeOid; /* Oid of column type */ Tcl_Obj* retval; /* List of table names */ Tcl_Obj* attrs; /* Attributes of the column */ Tcl_Obj* name; /* Name of a column */ Tcl_Obj* sqlQuery = Tcl_NewStringObj("SELECT * FROM ", -1); /* Query used */ Tcl_IncrRefCount(sqlQuery); /* Check parameters */ if (objc < 3 || objc > 4) { Tcl_WrongNumArgs(interp, 2, objv, "table ?pattern?"); | > | 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 | char* columnName; /* Name of the column */ Oid typeOid; /* Oid of column type */ Tcl_Obj* retval; /* List of table names */ Tcl_Obj* attrs; /* Attributes of the column */ Tcl_Obj* name; /* Name of a column */ Tcl_Obj* sqlQuery = Tcl_NewStringObj("SELECT * FROM ", -1); /* Query used */ (void)dummy; Tcl_IncrRefCount(sqlQuery); /* Check parameters */ if (objc < 3 || objc > 4) { Tcl_WrongNumArgs(interp, 2, objv, "table ?pattern?"); |
︙ | ︙ | |||
1623 1624 1625 1626 1627 1628 1629 | * 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( | | > > | 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 | * 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); /* Instance data */ (void)dummy; return ConfigureConnection(cdata, interp, objc, objv, skip); } /* *----------------------------------------------------------------------------- * * ConnectionRollbackMethod -- |
︙ | ︙ | |||
1662 1663 1664 1665 1666 1667 1668 | * otherwise. * *----------------------------------------------------------------------------- */ static int ConnectionRollbackMethod( | | > | 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 | * 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 */ (void)dummy; /* Check parameters */ if (objc != 2) { Tcl_WrongNumArgs(interp, 2, objv, ""); return TCL_ERROR; } |
︙ | ︙ | |||
1719 1720 1721 1722 1723 1724 1725 | * Returns the list of tables * *----------------------------------------------------------------------------- */ static int ConnectionTablesMethod( | | | 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 | * 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 */ |
︙ | ︙ | |||
1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 | Tcl_Obj* retval; /* List of table names */ Tcl_Obj* sqlQuery = Tcl_NewStringObj("SELECT tablename" " FROM pg_tables" " WHERE schemaname = 'public'", -1); /* SQL query for table list */ int i; Tcl_IncrRefCount(sqlQuery); /* Check parameters */ if (objc < 2 || objc > 3) { Tcl_WrongNumArgs(interp, 2, objv, ""); return TCL_ERROR; | > > | 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 | Tcl_Obj* retval; /* List of table names */ Tcl_Obj* sqlQuery = Tcl_NewStringObj("SELECT tablename" " FROM pg_tables" " WHERE schemaname = 'public'", -1); /* SQL query for table list */ int i; (void)dummy; Tcl_IncrRefCount(sqlQuery); /* Check parameters */ if (objc < 2 || objc > 3) { Tcl_WrongNumArgs(interp, 2, objv, ""); return TCL_ERROR; |
︙ | ︙ | |||
1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 | 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("Postgres connections are not clonable", -1)); return TCL_ERROR; } /* | > > > | 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 | 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("Postgres connections are not clonable", -1)); return TCL_ERROR; } /* |
︙ | ︙ | |||
1895 1896 1897 1898 1899 1900 1901 | * refcounts accurate * *----------------------------------------------------------------------------- */ static int CloneCmd( | | > > | 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 | * 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; } /* *----------------------------------------------------------------------------- * |
︙ | ︙ | |||
2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 | Tcl_HashTable names; /* Hash table to resolve name collisions */ char * fieldName; Tcl_InitHashTable(&names, TCL_STRING_KEYS); if (result != NULL) { unsigned int fieldCount = PQnfields(result); unsigned int i; char numbuf[16]; for (i = 0; i < fieldCount; ++i) { int isNew; int count = 1; Tcl_Obj* nameObj; Tcl_HashEntry* entry; fieldName = PQfname(result, i); nameObj = Tcl_NewStringObj(fieldName, -1); | > > | 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 | Tcl_HashTable names; /* Hash table to resolve name collisions */ char * fieldName; Tcl_InitHashTable(&names, TCL_STRING_KEYS); if (result != NULL) { unsigned int fieldCount = PQnfields(result); unsigned int i; char numbuf[16]; (void)flags; for (i = 0; i < fieldCount; ++i) { int isNew; int count = 1; Tcl_Obj* nameObj; Tcl_HashEntry* entry; fieldName = PQfname(result, i); nameObj = Tcl_NewStringObj(fieldName, -1); |
︙ | ︙ | |||
2144 2145 2146 2147 2148 2149 2150 | * connection) in instance metadata. * *----------------------------------------------------------------------------- */ static int StatementConstructor( | | | 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 | * 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 */ |
︙ | ︙ | |||
2167 2168 2169 2170 2171 2172 2173 | 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 */ PGresult* res; /* Temporary result of libpq calls */ char tmpstr[30]; /* Temporary array for strings */ | | > | 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 | 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 */ PGresult* res; /* Temporary result of libpq calls */ char tmpstr[30]; /* Temporary array for strings */ int i, j; (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"); |
︙ | ︙ | |||
2318 2319 2320 2321 2322 2323 2324 | * * *----------------------------------------------------------------------------- */ static int StatementParamsMethod( | | > | 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 | * * *----------------------------------------------------------------------------- */ 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 */ 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(); |
︙ | ︙ | |||
2404 2405 2406 2407 2408 2409 2410 | * Updates the description of the given parameter. * *----------------------------------------------------------------------------- */ static int StatementParamtypeMethod( | | | 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 | * 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 */ |
︙ | ︙ | |||
2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 | 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; } | > | 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 | 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; } |
︙ | ︙ | |||
2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 | 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("Postgres statements are not clonable", -1)); return TCL_ERROR; } /* | > > > | 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 | 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("Postgres statements are not clonable", -1)); return TCL_ERROR; } /* |
︙ | ︙ | |||
2620 2621 2622 2623 2624 2625 2626 | * contains an appropriate message. * *----------------------------------------------------------------------------- */ static int ResultSetConstructor( | | | 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 | * 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 */ |
︙ | ︙ | |||
2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 | * its memory released */ Tcl_Obj** paramTempObjs; /* Temporary parameter objects allocated * to canonicalize numeric parameter values */ PGresult* res; /* Temporary result */ int i; int status = TCL_ERROR; /* Return status */ /* Check parameter count */ if (objc != skip+1 && objc != skip+2) { Tcl_WrongNumArgs(interp, skip, objv, "statement ?dictionary?"); return TCL_ERROR; } | > | 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 | * its memory released */ Tcl_Obj** paramTempObjs; /* Temporary parameter objects allocated * to canonicalize numeric parameter values */ PGresult* res; /* Temporary result */ int i; int status = TCL_ERROR; /* Return status */ (void)dummy; /* Check parameter count */ if (objc != skip+1 && objc != skip+2) { Tcl_WrongNumArgs(interp, skip, objv, "statement ?dictionary?"); return TCL_ERROR; } |
︙ | ︙ | |||
2917 2918 2919 2920 2921 2922 2923 | * Returns the count of columns * *----------------------------------------------------------------------------- */ static int ResultSetColumnsMethod( | | > | 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 | * 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)); |
︙ | ︙ | |||
3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 | 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("Postgres result sets are not clonable", -1)); return TCL_ERROR; } /* | > > > | 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 | 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("Postgres result sets are not clonable", -1)); return TCL_ERROR; } /* |
︙ | ︙ | |||
3161 3162 3163 3164 3165 3166 3167 | * Returns a standard Tcl result giving the number of affected rows. * *----------------------------------------------------------------------------- */ static int ResultSetRowcountMethod( | | > | 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 | * 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 */ ) { char * nTuples; 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 */ StatementData* sdata = rdata->sdata; /* The current statement */ ConnectionData* cdata = sdata->cdata; PerInterpData* pidata = cdata->pidata; /* Per-interp data */ Tcl_Obj** literals = pidata->literals; /* Literal pool */ (void)dummy; if (objc != 2) { Tcl_WrongNumArgs(interp, 2, objv, ""); return TCL_ERROR; } nTuples = PQcmdTuples(rdata->execResult); |
︙ | ︙ |