data value | \n");
puts(" is \n");
snprintf(name, sizeof(name), "cmp%s_wigDataValue", tableId);
cgiMakeDropList(name, cmpOpMenu, cmpOpMenuSize,
cgiUsualString(name, cmpOpMenu[0]));
puts(" | \n");
newVal = "";
snprintf(name, sizeof(name), "pat%s_wigDataValue", tableId);
@@ -1955,31 +1955,31 @@
/* Add CGI variables for filtering constraints, so they will be passed to
* the next page. Also parse the constraints and do a null query with them
* in order to catch any syntax errors sooner rather than later. */
{
struct cgiVar *current;
char *constraints = constrainFields(tableId);
char varName[128];
if ((constraints != NULL) && (constraints[0] != 0) &&
(! sameString(customTrackPseudoDb, db)))
{
struct sqlConnection *conn = hAllocOrConnect(db);
struct sqlResult *sr;
struct dyString *query = newDyString(512);
// Null query will cause errAbort if there's a syntax error, no-op if OK.
- dyStringPrintf(query, "SELECT 1 FROM %s WHERE 0 AND %s",
+ sqlDyStringPrintf(query, "SELECT 1 FROM %s WHERE 0 AND %s",
fullTblName, constraints);
sr = sqlGetResult(conn, query->string);
dyStringFree(&query);
sqlFreeResult(&sr);
hFreeOrDisconnect(&conn);
}
if (tableId == NULL)
tableId = "";
for (current = cgiVarList(); current != NULL; current = current->next)
{
/* Look for pattern variable associated with each field. */
snprintf(varName, sizeof(varName), "pat%s_", tableId);
if (startsWith(varName, current->name))
cgiMakeHiddenVar(current->name, current->val);
@@ -2632,31 +2632,31 @@
{
field = newSlName("blockCount");
slAddHead(&fieldList, field);
field = newSlName("blockSizes");
slAddHead(&fieldList, field);
field = newSlName("chromStarts");
slAddHead(&fieldList, field);
}
}
else
{
struct sqlConnection *conn = hAllocOrConnect(db);
struct sqlResult *sr;
char **row;
char query[256];
- snprintf(query, sizeof(query), "DESCRIBE %s", fullTableName);
+ sqlSafef(query, sizeof(query), "DESCRIBE %s", fullTableName);
sr = sqlGetResult(conn, query);
while ((row = sqlNextRow(sr)) != NULL)
{
field = newSlName(row[0]);
slAddHead(&fieldList, field);
}
sqlFreeResult(&sr);
hFreeOrDisconnect(&conn);
}
slReverse(&fieldList);
return(fieldList);
}
struct slName *getChosenFields(boolean allFields)
/* Return a list of chosen field names. */
@@ -2907,31 +2907,31 @@
boolean showTableDescriptions(struct sqlConnection *conn, char *table)
/* Display autoSql definition and gbdDescriptions link for table,
* if available. */
{
boolean gotInfo = FALSE;
static char *asTableName = "tableDescriptions";
if (sqlTableExists(conn, asTableName))
{
struct sqlResult *sr = NULL;
struct tableDescriptions *asi = NULL;
char query[512];
char **row = NULL;
- safef(query, sizeof(query), "select * from %s where tableName = '%s'",
+ sqlSafef(query, sizeof(query), "select * from %s where tableName = '%s'",
asTableName, table);
sr = sqlGetResult(conn, query);
if ((row = sqlNextRow(sr)) != NULL)
{
asi = tableDescriptionsLoad(row);
gotInfo = TRUE;
if (asi->autoSqlDef != NULL && asi->autoSqlDef[0] != 0)
{
puts("\n", table);
puts("");
puts(asi->autoSqlDef);
puts(" ");
}
if (asi->gbdAnchor != NULL && asi->gbdAnchor[0] != 0)
@@ -2967,31 +2967,31 @@
if (sameString(table, "mrna"))
{
struct slName *slNew = newSlName(table);
slFreeList(&tableList);
tableList = slNew;
}
#endif /* NEEDED_UNTIL_GB_CDNA_INFO_CHANGE */
for (tPtr=tableList; tPtr != NULL; tPtr=tPtr->next)
{
count += sqlTableSize(conn, tPtr->name);
}
printf("Table %s has %d rows total. \n", table, count);
if (count > 0)
{
- dyStringPrintf(query, "select * from %s limit %d", tableList->name, n);
+ sqlDyStringPrintf(query, "select * from %s limit %d", tableList->name, n);
sr = sqlGetResult(conn, query->string);
printf ("Example rows of table %s (not necessarily from current position!): \n",
table);
puts("");
numberColumns = sqlCountColumns(sr);
printf("#");
for (i = 0; i < numberColumns; i++)
{
printf("%s\t", sqlFieldName(sr));
}
printf("\n");
while ((row = sqlNextRow(sr)) != NULL)
{
for (i = 0; i < numberColumns; i++)
printf("%s\t", row[i]);
@@ -3002,31 +3002,31 @@
}
void descTable(boolean histButtons)
/* Print out an HTML table showing table fields and types, and optionally
* offering histograms for the text/enum fields. */
{
char *db = getTableDb();
struct sqlConnection *conn = hAllocOrConnect(db);
struct sqlResult *sr;
char **row;
boolean tooBig = (sqlTableSize(conn, fullTableName) > TOO_BIG_FOR_HISTO);
char button[64];
char query[256];
-safef(query, sizeof(query), "desc %s", fullTableName);
+sqlSafef(query, sizeof(query), "describe %s", fullTableName);
sr = sqlGetResult(conn, query);
// For some reason BORDER=1 does not work in our web.c nested table scheme.
// So use web.c's trick of using an enclosing table to provide a border.
puts("" "\n"
" ");
puts("");
printf(" name | SQL type | ");
histButtons = (histButtons && ! tooBig);
if (histButtons)
printf("text value histogram | ");
puts(" ");
while ((row = sqlNextRow(sr)) != NULL)
{
printf(" %s | %s | ", row[0], row[1]);
if (histButtons)
@@ -3206,54 +3206,54 @@
{
dyStringAppend(fieldSpec, ",");
dyStringAppend(fieldSpec, hti->nameField);
}
conn = hAllocOrConnect(db);
gotResults = FALSE;
if (tableIsSplit)
{
for (chromPtr=chromList; chromPtr != NULL; chromPtr = chromPtr->next)
{
getFullTableName(fullTableName, chromPtr->name, table);
if (! sqlTableExists(conn, fullTableName))
continue;
dyStringClear(query);
- dyStringPrintf(query, "SELECT %s FROM %s",
+ sqlDyStringPrintf(query, "SELECT %s FROM %s",
fieldSpec->string, fullTableName);
if ((! allGenome) && tableIsPositional)
{
- dyStringPrintf(query, " WHERE %s < %d AND %s > %d",
+ sqlDyStringPrintf(query, " WHERE %s < %d AND %s > %d",
hti->startField, winEnd, hti->endField, winStart);
if ((constraints != NULL) && (constraints[0] != 0))
dyStringPrintf(query, " AND %s", constraints);
}
else if ((constraints != NULL) && (constraints[0] != 0))
dyStringPrintf(query, " WHERE %s", constraints);
sr = sqlGetResult(conn, query->string);
gotResults = printTabbedResults(sr, gotResults);
sqlFreeResult(&sr);
}
}
else
{
dyStringClear(query);
- dyStringPrintf(query, "SELECT %s FROM %s",
+ sqlDyStringPrintf(query, "SELECT %s FROM %s",
fieldSpec->string, fullTableName);
if ((! allGenome) && tableIsPositional)
{
- dyStringPrintf(query, " WHERE %s < %d AND %s > %d",
+ sqlDyStringPrintf(query, " WHERE %s < %d AND %s > %d",
hti->startField, winEnd, hti->endField, winStart);
if (! sameString("", hti->chromField))
dyStringPrintf(query, " AND %s = \'%s\'",
hti->chromField, chrom);
if ((constraints != NULL) && (constraints[0] != 0))
dyStringPrintf(query, " AND %s", constraints);
}
else if ((constraints != NULL) && (constraints[0] != 0))
dyStringPrintf(query, " WHERE %s", constraints);
sr = sqlGetResult(conn, query->string);
gotResults = printTabbedResults(sr, gotResults);
sqlFreeResult(&sr);
}
if (! gotResults)
printf("\n# No results returned from query.\n\n");
@@ -4095,31 +4095,31 @@
puts(" ");
puts(""
"Help");
printf(" Your query on %s: \n", table);
constraints = constrainFields(NULL);
if ((constraints != NULL) && (constraints[0] == 0))
constraints = NULL;
if (constraints != NULL)
printf("Constraints on %s: %s\n", table, constraints);
else
printf("No constraints selected on fields of %s. \n", table);
dyStringClear(query);
-dyStringPrintf(query, "select count(*) from %s%s%s", table,
+sqlDyStringPrintf(query, "select count(*) from %s%s%-s", table,
(constraints ? " where " : ""),
(constraints ? constraints : ""));
conn = hAllocOrConnect(db);
numRows = sqlQuickNum(conn, query->string);
hFreeOrDisconnect(&conn);
printf("Number of rows in %s%s: %d \n", table,
constraints ? " matching constraints" : "", numRows);
descForm();
webEnd();
}
struct slName *getOrderedChromList()
/* Put the _random's at the end, and break them into two lines. */
/* Also, put the alpha-name chroms after the numeric-name chroms. */
@@ -4857,38 +4857,38 @@
wild = slNameNew(word);
slAddHead(&wildNames, wild);
}
}
}
conn = hAllocOrConnect(db);
for (chromPtr=chromList; chromPtr != NULL; chromPtr=chromPtr->next)
{
getFullTableName(fullTableName, chromPtr->name, table);
if (! sqlTableExists(conn, fullTableName))
continue;
dyStringClear(query);
if (isBatch() && hti->nameField[0] != 0)
{
- dyStringPrintf(query, "SELECT %s,%s FROM %s", field, hti->nameField,
+ sqlDyStringPrintf(query, "SELECT %s,%s FROM %s", field, hti->nameField,
fullTableName);
}
else
- dyStringPrintf(query, "SELECT %s FROM %s", field, fullTableName);
+ sqlDyStringPrintf(query, "SELECT %s FROM %s", field, fullTableName);
if (tableIsPositional)
{
- dyStringPrintf(query, " WHERE %s < %d AND %s > %d",
+ sqlDyStringPrintf(query, " WHERE %s < %d AND %s > %d",
hti->startField, winEnd, hti->endField, winStart);
if (! sameString("", hti->chromField))
dyStringPrintf(query, " AND %s = \'%s\'",
hti->chromField, chrom);
if ((constraints != NULL) && (constraints[0] != 0))
dyStringPrintf(query, " AND %s", constraints);
}
else if (constraints)
dyStringPrintf(query, " WHERE %s", constraints);
sr = sqlGetResult(conn, query->string);
// make a hash of field values to frequencies,
// filtering with user keys if specified:
while ((row = sqlNextRow(sr)) != NULL)
{
if ((! isBatch()) || (hti->nameField[0] == 0) ||
|
|