void makeItemsItemSaveToDbEscaped(struct sqlConnection *conn, struct makeItemsItem *el, char *tableName, int updateSize) /* Save makeItemsItem as a row to the table specified by tableName. * As blob fields may be arbitrary size updateSize specifies the approx size. * of a string that would contain the entire query. Automatically * escapes all simple strings (not arrays of string) but may be slower than makeItemsItemSaveToDb(). * For example automatically copies and converts: * "autosql's features include" --> "autosql\'s features include" * before inserting into database. */ { struct dyString *update = newDyString(updateSize); char *chrom, *name, *strand, *description; chrom = sqlEscapeString(el->chrom); name = sqlEscapeString(el->name); strand = sqlEscapeString(el->strand); description = sqlEscapeString(el->description); dyStringPrintf(update, "insert into %s values ( %u,'%s',%u,%u,'%s',%u,'%s',%u,%u,%u,'%s',%u)", tableName, el->bin, chrom, el->chromStart, el->chromEnd, name, el->score, strand, el->thickStart, el->thickEnd, el->itemRgb, description, el->id); sqlUpdate(conn, update->string); freeDyString(&update); freez(&chrom); freez(&name); freez(&strand); freez(&description); }
void cutterSaveToDbEscaped(struct sqlConnection *conn, struct cutter *el, char *tableName, int updateSize) /* Save cutter as a row to the table specified by tableName. * As blob fields may be arbitrary size updateSize specifies the approx size. * of a string that would contain the entire query. Automatically * escapes all simple strings (not arrays of string) but may be slower than cutterSaveToDb(). * For example automatically copies and converts: * "autosql's features include" --> "autosql\'s features include" * before inserting into database. */ { struct dyString *update = newDyString(updateSize); char *name, *seq, *scizsArray, *companiesArray, *refsArray; name = sqlEscapeString(el->name); seq = sqlEscapeString(el->seq); scizsArray = sqlStringArrayToString(el->scizs, el->numSciz); companiesArray = sqlCharArrayToString(el->companies, el->numCompanies); refsArray = sqlUnsignedArrayToString(el->refs, el->numRefs); dyStringPrintf(update, "insert into %s values ( '%s',%u,%u,'%s',%u,%d,%u,%u,%u,'%s',%u,'%s',%u,'%s')", tableName, name, el->size , el->matchSize , seq, el->cut , el->overhang , el->palindromic , el->semicolon , el->numSciz , scizsArray , el->numCompanies , companiesArray , el->numRefs , refsArray ); sqlUpdate(conn, update->string); freeDyString(&update); freez(&name); freez(&seq); freez(&scizsArray); freez(&companiesArray); freez(&refsArray); }
void protVarLinkSaveToDbEscaped(struct sqlConnection *conn, struct protVarLink *el, char *tableName, int updateSize) /* Save protVarLink as a row to the table specified by tableName. * As blob fields may be arbitrary size updateSize specifies the approx size. * of a string that would contain the entire query. Automatically * escapes all simple strings (not arrays of string) but may be slower than protVarLinkSaveToDb(). * For example automatically copies and converts: * "autosql's features include" --> "autosql\'s features include" * before inserting into database. */ { struct dyString *update = newDyString(updateSize); char *id, *attrType, *raKey, *acc, *displayVal; id = sqlEscapeString(el->id); attrType = sqlEscapeString(el->attrType); raKey = sqlEscapeString(el->raKey); acc = sqlEscapeString(el->acc); displayVal = sqlEscapeString(el->displayVal); dyStringPrintf(update, "insert into %s values ( '%s','%s','%s','%s','%s')", tableName, id, attrType, raKey, acc, displayVal); sqlUpdate(conn, update->string); freeDyString(&update); freez(&id); freez(&attrType); freez(&raKey); freez(&acc); freez(&displayVal); }
void protVarSaveToDbEscaped(struct sqlConnection *conn, struct protVar *el, char *tableName, int updateSize) /* Save protVar as a row to the table specified by tableName. * As blob fields may be arbitrary size updateSize specifies the approx size. * of a string that would contain the entire query. Automatically * escapes all simple strings (not arrays of string) but may be slower than protVarSaveToDb(). * For example automatically copies and converts: * "autosql's features include" --> "autosql\'s features include" * before inserting into database. */ { struct dyString *update = newDyString(updateSize); char *id, *name, *srcId, *baseChangeType, *location; id = sqlEscapeString(el->id); name = sqlEscapeString(el->name); srcId = sqlEscapeString(el->srcId); baseChangeType = sqlEscapeString(el->baseChangeType); location = sqlEscapeString(el->location); dyStringPrintf(update, "insert into %s values ( '%s','%s','%s','%s','%s',%u)", tableName, id, name, srcId, baseChangeType, location, el->coordinateAccuracy); sqlUpdate(conn, update->string); freeDyString(&update); freez(&id); freez(&name); freez(&srcId); freez(&baseChangeType); freez(&location); }
void affyAtlasSaveToDbEscaped(struct sqlConnection *conn, struct affyAtlas *el, char *tableName, int updateSize) /* Save affyAtlas as a row to the table specified by tableName. * As blob fields may be arbitrary size updateSize specifies the approx size. * of a string that would contain the entire query. Automatically * escapes all simple strings (not arrays of string) but may be slower than affyAtlasSaveToDb(). * For example automatically copies and converts: * "autosql's features include" --> "autosql\'s features include" * before inserting into database. */ { struct dyString *update = newDyString(updateSize); char *annName, *probeSet, *detection, *tissue; annName = sqlEscapeString(el->annName); probeSet = sqlEscapeString(el->probeSet); detection = sqlEscapeString(el->detection); tissue = sqlEscapeString(el->tissue); dyStringPrintf(update, "insert into %s values ( '%s','%s',%f,'%s',%f,'%s')", tableName, annName, probeSet, el->signal , detection, el->pval , tissue); sqlUpdate(conn, update->string); freeDyString(&update); freez(&annName); freez(&probeSet); freez(&detection); freez(&tissue); }
void taxonGeneticCodeSaveToDbEscaped(struct sqlConnection *conn, struct taxonGeneticCode *el, char *tableName, int updateSize) /* Save taxonGeneticCode as a row to the table specified by tableName. * As blob fields may be arbitrary size updateSize specifies the approx size. * of a string that would contain the entire query. Automatically * escapes all simple strings (not arrays of string) but may be slower than taxonGeneticCodeSaveToDb(). * For example automatically copies and converts: * "autosql's features include" --> "autosql\'s features include" * before inserting into database. */ { struct dyString *update = newDyString(updateSize); char *abbr, *name, *tranlsation, *starts, *comments; abbr = sqlEscapeString(el->abbr); name = sqlEscapeString(el->name); tranlsation = sqlEscapeString(el->tranlsation); starts = sqlEscapeString(el->starts); comments = sqlEscapeString(el->comments); dyStringPrintf(update, "insert into %s values ( %u,'%s','%s','%s','%s','%s')", tableName, el->id , abbr, name, tranlsation, starts, comments); sqlUpdate(conn, update->string); freeDyString(&update); freez(&abbr); freez(&name); freez(&tranlsation); freez(&starts); freez(&comments); }
void affy10KDetailsSaveToDbEscaped(struct sqlConnection *conn, struct affy10KDetails *el, char *tableName, int updateSize) /* Save affy10KDetails as a row to the table specified by tableName. * As blob fields may be arbitrary size updateSize specifies the approx size. * of a string that would contain the entire query. Automatically * escapes all simple strings (not arrays of string) but may be slower than affy10KDetailsSaveToDb(). * For example automatically copies and converts: * "autosql's features include" --> "autosql\'s features include" * before inserting into database. */ { struct dyString *update = newDyString(updateSize); char *affyId, *rsId, *tscId, *baseA, *baseB, *sequenceA, *sequenceB, *enzyme; affyId = sqlEscapeString(el->affyId); rsId = sqlEscapeString(el->rsId); tscId = sqlEscapeString(el->tscId); baseA = sqlEscapeString(el->baseA); baseB = sqlEscapeString(el->baseB); sequenceA = sqlEscapeString(el->sequenceA); sequenceB = sqlEscapeString(el->sequenceB); enzyme = sqlEscapeString(el->enzyme); dyStringPrintf(update, "insert into %s values ( '%s','%s','%s','%s','%s','%s','%s','%s')", tableName, affyId, rsId, tscId, baseA, baseB, sequenceA, sequenceB, enzyme); sqlUpdate(conn, update->string); freeDyString(&update); freez(&affyId); freez(&rsId); freez(&tscId); freez(&baseA); freez(&baseB); freez(&sequenceA); freez(&sequenceB); freez(&enzyme); }
struct edwScriptRegistry *edwScriptRegistryFromCgi() /* Get script registery from cgi variables. Does authentication too. */ { struct sqlConnection *conn = edwConnect(); char *user = sqlEscapeString(cgiString("user")); char *password = sqlEscapeString(cgiString("password")); char query[256]; sqlSafef(query, sizeof(query), "select * from edwScriptRegistry where name='%s'", user); struct edwScriptRegistry *reg = edwScriptRegistryLoadByQuery(conn, query); if (reg == NULL) accessDenied(); char key[EDW_SID_SIZE]; edwMakeSid(password, key); if (!sameString(reg->secretHash, key)) accessDenied(); sqlDisconnect(&conn); return reg; }
void sangerGeneToWBGeneIDSaveToDbEscaped(struct sqlConnection *conn, struct sangerGeneToWBGeneID *el, char *tableName, int updateSize) /* Save sangerGeneToWBGeneID as a row to the table specified by tableName. * As blob fields may be arbitrary size updateSize specifies the approx size. * of a string that would contain the entire query. Automatically * escapes all simple strings (not arrays of string) but may be slower than sangerGeneToWBGeneIDSaveToDb(). * For example automatically copies and converts: * "autosql's features include" --> "autosql\'s features include" * before inserting into database. */ { struct dyString *update = newDyString(updateSize); char *sangerGene, *WBGeneID; sangerGene = sqlEscapeString(el->sangerGene); WBGeneID = sqlEscapeString(el->WBGeneID); dyStringPrintf(update, "insert into %s values ( '%s','%s')", tableName, sangerGene, WBGeneID); sqlUpdate(conn, update->string); freeDyString(&update); freez(&sangerGene); freez(&WBGeneID); }
void polyGenotypeSaveToDbEscaped(struct sqlConnection *conn, struct polyGenotype *el, char *tableName, int updateSize) /* Save polyGenotype as a row to the table specified by tableName. * As blob fields may be arbitrary size updateSize specifies the approx size. * of a string that would contain the entire query. Automatically * escapes all simple strings (not arrays of string) but may be slower than polyGenotypeSaveToDb(). * For example automatically copies and converts: * "autosql's features include" --> "autosql\'s features include" * before inserting into database. */ { struct dyString *update = newDyString(updateSize); char *name, *ethnicGroup; name = sqlEscapeString(el->name); ethnicGroup = sqlEscapeString(el->ethnicGroup); dyStringPrintf(update, "insert into %s values ( '%s','%s',%d,%d,%d,%d,%g,%g)", tableName, name, ethnicGroup, el->plusPlus , el->plusMinus , el->minusMinus , el->sampleSize , el->alleleFrequency , el->unbiasedHeterozygosity ); sqlUpdate(conn, update->string); freeDyString(&update); freez(&name); freez(ðnicGroup); }
void tfbsConsSaveToDbEscaped(struct sqlConnection *conn, struct tfbsCons *el, char *tableName, int updateSize) /* Save tfbsCons as a row to the table specified by tableName. * As blob fields may be arbitrary size updateSize specifies the approx size. * of a string that would contain the entire query. Automatically * escapes all simple strings (not arrays of string) but may be slower than tfbsConsSaveToDb(). * For example automatically copies and converts: * "autosql's features include" --> "autosql\'s features include" * before inserting into database. */ { struct dyString *update = newDyString(updateSize); char *chrom, *name, *strand, *species, *factor, *id; chrom = sqlEscapeString(el->chrom); name = sqlEscapeString(el->name); strand = sqlEscapeString(el->strand); species = sqlEscapeString(el->species); factor = sqlEscapeString(el->factor); id = sqlEscapeString(el->id); dyStringPrintf(update, "insert into %s values ( '%s',%u,%u,'%s',%u,'%s','%s','%s','%s')", tableName, chrom, el->chromStart , el->chromEnd , name, el->score , strand, species, factor, id); sqlUpdate(conn, update->string); freeDyString(&update); freez(&chrom); freez(&name); freez(&strand); freez(&species); freez(&factor); freez(&id); }
void ggMrnaAliSaveToDbEscaped(struct sqlConnection *conn, struct ggMrnaAli *el, char *tableName, int updateSize) /* Save ggMrnaAli as a row to the table specified by tableName. * As blob fields may be arbitrary size updateSize specifies the approx size. * of a string that would contain the entire query. Automatically * escapes all simple strings (not arrays of string) but may be slower than ggMrnaAliSaveToDb(). * For example automatically copies and converts: * "autosql's features include" --> "autosql\'s features include" * before inserting into database. */ { struct dyString *update = newDyString(updateSize); char *tName, *strand, *qName; tName = sqlEscapeString(el->tName); strand = sqlEscapeString(el->strand); qName = sqlEscapeString(el->qName); dyStringPrintf(update, "insert into %s values ( '%s',%d,%d,'%s','%s',%d,%d,%u,%d,%d,%d,%d, NULL )", tableName, tName, el->tStart , el->tEnd , strand, qName, el->qStart , el->qEnd , el->baseCount , el->orientation , el->hasIntrons , el->milliScore , el->blockCount ); sqlUpdate(conn, update->string); freeDyString(&update); freez(&tName); freez(&strand); freez(&qName); }
void affy10KSaveToDbEscaped(struct sqlConnection *conn, struct affy10K *el, char *tableName, int updateSize) /* Save affy10K as a row to the table specified by tableName. * As blob fields may be arbitrary size updateSize specifies the approx size. * of a string that would contain the entire query. Automatically * escapes all simple strings (not arrays of string) but may be slower than affy10KSaveToDb(). * For example automatically copies and converts: * "autosql's features include" --> "autosql\'s features include" * before inserting into database. */ { struct dyString *update = newDyString(updateSize); char *chrom; chrom = sqlEscapeString(el->chrom); dyStringPrintf(update, "insert into %s values ( '%s',%u,%u,%u)", tableName, chrom, el->chromStart , el->chromEnd , el->affyId ); sqlUpdate(conn, update->string); freeDyString(&update); freez(&chrom); }
static void convert_query_term_to_sql( const GncSqlBackend* be, const gchar* fieldName, QofQueryTerm* pTerm, GString* sql ) { QofQueryPredData* pPredData; gboolean isInverted; g_return_if_fail( pTerm != NULL ); g_return_if_fail( sql != NULL ); pPredData = qof_query_term_get_pred_data( pTerm ); isInverted = qof_query_term_is_inverted( pTerm ); if ( g_strcmp0( pPredData->type_name, QOF_TYPE_GUID ) == 0 ) { query_guid_t guid_data = (query_guid_t)pPredData; GList* guid_entry; g_string_append( sql, "(" ); g_string_append( sql, fieldName ); switch ( guid_data->options ) { case QOF_GUID_MATCH_ANY: if ( isInverted ) g_string_append( sql, " NOT IN (" ); else g_string_append( sql, " IN (" ); break; case QOF_GUID_MATCH_NONE: if ( isInverted ) g_string_append( sql, " IN (" ); else g_string_append( sql, " NOT IN (" ); break; default: PERR( "Unexpected GncGUID match type: %d\n", guid_data->options ); } for ( guid_entry = guid_data->guids; guid_entry != NULL; guid_entry = guid_entry->next ) { gchar guid_buf[GUID_ENCODING_LENGTH+1]; if ( guid_entry != guid_data->guids ) g_string_append( sql, "," ); (void)guid_to_string_buff( guid_entry->data, guid_buf ); g_string_append_printf( sql, "'%s'", guid_buf ); } g_string_append( sql, "))" ); } else if ( g_strcmp0( pPredData->type_name, QOF_TYPE_CHAR ) == 0 ) { query_char_t char_data = (query_char_t)pPredData; int i; if ( isInverted ) { g_string_append( sql, "NOT(" ); } if ( char_data->options == QOF_CHAR_MATCH_NONE ) { g_string_append( sql, "NOT " ); } g_string_append( sql, "(" ); for ( i = 0; char_data->char_list[i] != '\0'; i++ ) { if ( i != 0 ) { g_string_append( sql, " OR " ); } g_string_append( sql, fieldName ); g_string_append( sql, " = '" ); g_string_append_c( sql, char_data->char_list[i] ); g_string_append( sql, "'" ); } g_string_append( sql, ") " ); if ( isInverted ) { g_string_append( sql, ") " ); } } else if ( g_strcmp0( pPredData->type_name, QOF_TYPE_STRING ) == 0 ) { query_string_t string_data = (query_string_t)pPredData; sqlEscape* escape = sqlEscape_new(); if ( isInverted ) { g_string_append( sql, "NOT(" ); } if ( pPredData->how == QOF_COMPARE_NEQ ) { g_string_append( sql, "NOT(" ); } g_string_append( sql, fieldName ); if ( string_data->is_regex || string_data->options == QOF_STRING_MATCH_CASEINSENSITIVE ) { PWARN( "String is_regex || option = QOF_STRING_MATCH_INSENSITIVE\n" ); } // g_string_append( sql, " ~" ); // } else { g_string_append( sql, " =" ); // } // if( string_data->options == QOF_STRING_MATCH_CASEINSENSITIVE ) { // g_string_append( sql, "*" ); // } g_string_append( sql, "'" ); g_string_append( sql, sqlEscapeString( escape, string_data->matchstring ) ); g_string_append( sql, "'" ); if ( pPredData->how == QOF_COMPARE_NEQ ) { g_string_append( sql, ")" ); } if ( isInverted ) { g_string_append( sql, ")" ); } sqlEscape_destroy( escape ); } else { g_string_append( sql, "(" ); g_string_append( sql, fieldName ); convert_query_comparison_to_sql( pPredData, isInverted, sql ); if ( strcmp( pPredData->type_name, QOF_TYPE_NUMERIC ) == 0 ) { query_numeric_t pData = (query_numeric_t)pPredData; double d = gnc_numeric_to_double( pData->amount ); g_string_append_printf( sql, "%f", d ); } else if ( g_strcmp0( pPredData->type_name, QOF_TYPE_DATE ) == 0 ) { query_date_t date_data = (query_date_t)pPredData; gchar* datebuf; datebuf = gnc_sql_convert_timespec_to_string( be, date_data->date ); g_string_append_printf( sql, "'%s'", datebuf ); } else if ( strcmp( pPredData->type_name, QOF_TYPE_INT32 ) == 0 ) { query_int32_t pData = (query_int32_t)pPredData; g_string_append_printf( sql, "%d", pData->val ); } else if ( strcmp( pPredData->type_name, QOF_TYPE_INT64 ) == 0 ) { query_int64_t pData = (query_int64_t)pPredData; g_string_append_printf( sql, "%" G_GINT64_FORMAT, pData->val ); } else if ( strcmp( pPredData->type_name, QOF_TYPE_DOUBLE ) == 0 ) { query_double_t pData = (query_double_t)pPredData; g_string_append_printf( sql, "%f", pData->val ); } else if ( strcmp( pPredData->type_name, QOF_TYPE_BOOLEAN ) == 0 ) { query_boolean_t pData = (query_boolean_t)pPredData; g_string_append_printf( sql, "%d", pData->val ); } else { PERR( "Unknown query predicate type: %s\n", pPredData->type_name ); } g_string_append( sql, ")" ); } }
void dbRIPSaveToDbEscaped(struct sqlConnection *conn, struct dbRIP *el, char *tableName, int updateSize) /* Save dbRIP as a row to the table specified by tableName. * As blob fields may be arbitrary size updateSize specifies the approx size. * of a string that would contain the entire query. Automatically * escapes all simple strings (not arrays of string) but may be slower than dbRIPSaveToDb(). * For example automatically copies and converts: * "autosql's features include" --> "autosql\'s features include" * before inserting into database. */ { struct dyString *update = newDyString(updateSize); char *chrom, *name, *strand, *originalId, *forwardPrimer, *reversePrimer, *polyClass, *polyFamily, *polySubfamily, *polySeq, *polySource, *reference, *ascertainingMethod, *remarks, *disease, *genoRegion; chrom = sqlEscapeString(el->chrom); name = sqlEscapeString(el->name); strand = sqlEscapeString(el->strand); originalId = sqlEscapeString(el->originalId); forwardPrimer = sqlEscapeString(el->forwardPrimer); reversePrimer = sqlEscapeString(el->reversePrimer); polyClass = sqlEscapeString(el->polyClass); polyFamily = sqlEscapeString(el->polyFamily); polySubfamily = sqlEscapeString(el->polySubfamily); polySeq = sqlEscapeString(el->polySeq); polySource = sqlEscapeString(el->polySource); reference = sqlEscapeString(el->reference); ascertainingMethod = sqlEscapeString(el->ascertainingMethod); remarks = sqlEscapeString(el->remarks); disease = sqlEscapeString(el->disease); genoRegion = sqlEscapeString(el->genoRegion); dyStringPrintf(update, "insert into %s values ( '%s',%u,%u,'%s',%u,'%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s',%g,%d,%d,'%s','%s')", tableName, chrom, el->chromStart , el->chromEnd , name, el->score , strand, originalId, forwardPrimer, reversePrimer, polyClass, polyFamily, polySubfamily, polySeq, polySource, reference, ascertainingMethod, remarks, el->tm , el->filledSize , el->emptySize , disease, genoRegion); sqlUpdate(conn, update->string); freeDyString(&update); freez(&chrom); freez(&name); freez(&strand); freez(&originalId); freez(&forwardPrimer); freez(&reversePrimer); freez(&polyClass); freez(&polyFamily); freez(&polySubfamily); freez(&polySeq); freez(&polySource); freez(&reference); freez(&ascertainingMethod); freez(&remarks); freez(&disease); freez(&genoRegion); }
void tigrCmrGeneSaveToDbEscaped(struct sqlConnection *conn, struct tigrCmrGene *el, char *tableName, int updateSize) /* Save tigrCmrGene as a row to the table specified by tableName. * As blob fields may be arbitrary size updateSize specifies the approx size. * of a string that would contain the entire query. Automatically * escapes all simple strings (not arrays of string) but may be slower than tigrCmrGeneSaveToDb(). * For example automatically copies and converts: * "autosql's features include" --> "autosql\'s features include" * before inserting into database. */ { struct dyString *update = newDyString(updateSize); char *chrom, *name, *strand, *tigrCommon, *tigrGene, *tigrECN, *primLocus, *tigrMainRole, *tigrSubRole, *swissProt, *genbank, *goTerm; chrom = sqlEscapeString(el->chrom); name = sqlEscapeString(el->name); strand = sqlEscapeString(el->strand); tigrCommon = sqlEscapeString(el->tigrCommon); tigrGene = sqlEscapeString(el->tigrGene); tigrECN = sqlEscapeString(el->tigrECN); primLocus = sqlEscapeString(el->primLocus); tigrMainRole = sqlEscapeString(el->tigrMainRole); tigrSubRole = sqlEscapeString(el->tigrSubRole); swissProt = sqlEscapeString(el->swissProt); genbank = sqlEscapeString(el->genbank); goTerm = sqlEscapeString(el->goTerm); dyStringPrintf(update, "insert into %s values ( %d,'%s',%u,%u,'%s',%u,'%s','%s','%s','%s','%s',%u,%u,'%s','%s','%s','%s',%f,%f,%f,'%s')", tableName, el->bin , chrom, el->chromStart , el->chromEnd , name, el->score , strand, tigrCommon, tigrGene, tigrECN, primLocus, el->tigrLength , el->tigrPepLength , tigrMainRole, tigrSubRole, swissProt, genbank, el->tigrMw , el->tigrPi , el->tigrGc , goTerm); sqlUpdate(conn, update->string); freeDyString(&update); freez(&chrom); freez(&name); freez(&strand); freez(&tigrCommon); freez(&tigrGene); freez(&tigrECN); freez(&primLocus); freez(&tigrMainRole); freez(&tigrSubRole); freez(&swissProt); freez(&genbank); freez(&goTerm); }
void genotypeSaveToDbEscaped(struct sqlConnection *conn, struct genotype *el, char *tableName, int updateSize) /* Save genotype as a row to the table specified by tableName. * As blob fields may be arbitrary size updateSize specifies the approx size. * of a string that would contain the entire query. Automatically * escapes all simple strings (not arrays of string) but may be slower than genotypeSaveToDb(). * For example automatically copies and converts: * "autosql's features include" --> "autosql\'s features include" * before inserting into database. */ { struct dyString *update = newDyString(updateSize); char *rsId, *SNPalleles, *chrom, *strand, *assembly, *center, *protLSID, *assayLSID, *panelLSID, *NA06985, *NA06991, *NA06993, *NA06993_dup, *NA06994, *NA07000, *NA07019, *NA07022, *NA07029, *NA07034, *NA07048, *NA07055, *NA07056, *NA07345, *NA07348, *NA07357, *NA10830, *NA10831, *NA10835, *NA10838, *NA10839, *NA10846, *NA10847, *NA10851, *NA10854, *NA10855, *NA10856, *NA10857, *NA10859, *NA10860, *NA10861, *NA10863, *NA11829, *NA11830, *NA11831, *NA11832, *NA11839, *NA11840, *NA11881, *NA11882, *NA11992, *NA11993, *NA11993_dup, *NA11994, *NA11995, *NA12003, *NA12003_dup, *NA12004, *NA12005, *NA12006, *NA12043, *NA12044, *NA12056, *NA12057, *NA12144, *NA12145, *NA12146, *NA12154, *NA12155, *NA12156, *NA12156_dup, *NA12234, *NA12236, *NA12239, *NA12248, *NA12248_dup, *NA12249, *NA12264, *NA12707, *NA12716, *NA12717, *NA12740, *NA12750, *NA12751, *NA12752, *NA12753, *NA12760, *NA12761, *NA12762, *NA12763, *NA12801, *NA12802, *NA12812, *NA12813, *NA12814, *NA12815, *NA12864, *NA12865, *NA12872, *NA12873, *NA12874, *NA12875, *NA12878, *NA12891, *NA12892; rsId = sqlEscapeString(el->rsId); SNPalleles = sqlEscapeString(el->SNPalleles); chrom = sqlEscapeString(el->chrom); strand = sqlEscapeString(el->strand); assembly = sqlEscapeString(el->assembly); center = sqlEscapeString(el->center); protLSID = sqlEscapeString(el->protLSID); assayLSID = sqlEscapeString(el->assayLSID); panelLSID = sqlEscapeString(el->panelLSID); NA06985 = sqlEscapeString(el->NA06985); NA06991 = sqlEscapeString(el->NA06991); NA06993 = sqlEscapeString(el->NA06993); NA06993_dup = sqlEscapeString(el->NA06993_dup); NA06994 = sqlEscapeString(el->NA06994); NA07000 = sqlEscapeString(el->NA07000); NA07019 = sqlEscapeString(el->NA07019); NA07022 = sqlEscapeString(el->NA07022); NA07029 = sqlEscapeString(el->NA07029); NA07034 = sqlEscapeString(el->NA07034); NA07048 = sqlEscapeString(el->NA07048); NA07055 = sqlEscapeString(el->NA07055); NA07056 = sqlEscapeString(el->NA07056); NA07345 = sqlEscapeString(el->NA07345); NA07348 = sqlEscapeString(el->NA07348); NA07357 = sqlEscapeString(el->NA07357); NA10830 = sqlEscapeString(el->NA10830); NA10831 = sqlEscapeString(el->NA10831); NA10835 = sqlEscapeString(el->NA10835); NA10838 = sqlEscapeString(el->NA10838); NA10839 = sqlEscapeString(el->NA10839); NA10846 = sqlEscapeString(el->NA10846); NA10847 = sqlEscapeString(el->NA10847); NA10851 = sqlEscapeString(el->NA10851); NA10854 = sqlEscapeString(el->NA10854); NA10855 = sqlEscapeString(el->NA10855); NA10856 = sqlEscapeString(el->NA10856); NA10857 = sqlEscapeString(el->NA10857); NA10859 = sqlEscapeString(el->NA10859); NA10860 = sqlEscapeString(el->NA10860); NA10861 = sqlEscapeString(el->NA10861); NA10863 = sqlEscapeString(el->NA10863); NA11829 = sqlEscapeString(el->NA11829); NA11830 = sqlEscapeString(el->NA11830); NA11831 = sqlEscapeString(el->NA11831); NA11832 = sqlEscapeString(el->NA11832); NA11839 = sqlEscapeString(el->NA11839); NA11840 = sqlEscapeString(el->NA11840); NA11881 = sqlEscapeString(el->NA11881); NA11882 = sqlEscapeString(el->NA11882); NA11992 = sqlEscapeString(el->NA11992); NA11993 = sqlEscapeString(el->NA11993); NA11993_dup = sqlEscapeString(el->NA11993_dup); NA11994 = sqlEscapeString(el->NA11994); NA11995 = sqlEscapeString(el->NA11995); NA12003 = sqlEscapeString(el->NA12003); NA12003_dup = sqlEscapeString(el->NA12003_dup); NA12004 = sqlEscapeString(el->NA12004); NA12005 = sqlEscapeString(el->NA12005); NA12006 = sqlEscapeString(el->NA12006); NA12043 = sqlEscapeString(el->NA12043); NA12044 = sqlEscapeString(el->NA12044); NA12056 = sqlEscapeString(el->NA12056); NA12057 = sqlEscapeString(el->NA12057); NA12144 = sqlEscapeString(el->NA12144); NA12145 = sqlEscapeString(el->NA12145); NA12146 = sqlEscapeString(el->NA12146); NA12154 = sqlEscapeString(el->NA12154); NA12155 = sqlEscapeString(el->NA12155); NA12156 = sqlEscapeString(el->NA12156); NA12156_dup = sqlEscapeString(el->NA12156_dup); NA12234 = sqlEscapeString(el->NA12234); NA12236 = sqlEscapeString(el->NA12236); NA12239 = sqlEscapeString(el->NA12239); NA12248 = sqlEscapeString(el->NA12248); NA12248_dup = sqlEscapeString(el->NA12248_dup); NA12249 = sqlEscapeString(el->NA12249); NA12264 = sqlEscapeString(el->NA12264); NA12707 = sqlEscapeString(el->NA12707); NA12716 = sqlEscapeString(el->NA12716); NA12717 = sqlEscapeString(el->NA12717); NA12740 = sqlEscapeString(el->NA12740); NA12750 = sqlEscapeString(el->NA12750); NA12751 = sqlEscapeString(el->NA12751); NA12752 = sqlEscapeString(el->NA12752); NA12753 = sqlEscapeString(el->NA12753); NA12760 = sqlEscapeString(el->NA12760); NA12761 = sqlEscapeString(el->NA12761); NA12762 = sqlEscapeString(el->NA12762); NA12763 = sqlEscapeString(el->NA12763); NA12801 = sqlEscapeString(el->NA12801); NA12802 = sqlEscapeString(el->NA12802); NA12812 = sqlEscapeString(el->NA12812); NA12813 = sqlEscapeString(el->NA12813); NA12814 = sqlEscapeString(el->NA12814); NA12815 = sqlEscapeString(el->NA12815); NA12864 = sqlEscapeString(el->NA12864); NA12865 = sqlEscapeString(el->NA12865); NA12872 = sqlEscapeString(el->NA12872); NA12873 = sqlEscapeString(el->NA12873); NA12874 = sqlEscapeString(el->NA12874); NA12875 = sqlEscapeString(el->NA12875); NA12878 = sqlEscapeString(el->NA12878); NA12891 = sqlEscapeString(el->NA12891); NA12892 = sqlEscapeString(el->NA12892); dyStringPrintf(update, "insert into %s values ( '%s','%s','%s',%d,'%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')", tableName, rsId, SNPalleles, chrom, el->chromStart , strand, assembly, center, protLSID, assayLSID, panelLSID, NA06985, NA06991, NA06993, NA06993_dup, NA06994, NA07000, NA07019, NA07022, NA07029, NA07034, NA07048, NA07055, NA07056, NA07345, NA07348, NA07357, NA10830, NA10831, NA10835, NA10838, NA10839, NA10846, NA10847, NA10851, NA10854, NA10855, NA10856, NA10857, NA10859, NA10860, NA10861, NA10863, NA11829, NA11830, NA11831, NA11832, NA11839, NA11840, NA11881, NA11882, NA11992, NA11993, NA11993_dup, NA11994, NA11995, NA12003, NA12003_dup, NA12004, NA12005, NA12006, NA12043, NA12044, NA12056, NA12057, NA12144, NA12145, NA12146, NA12154, NA12155, NA12156, NA12156_dup, NA12234, NA12236, NA12239, NA12248, NA12248_dup, NA12249, NA12264, NA12707, NA12716, NA12717, NA12740, NA12750, NA12751, NA12752, NA12753, NA12760, NA12761, NA12762, NA12763, NA12801, NA12802, NA12812, NA12813, NA12814, NA12815, NA12864, NA12865, NA12872, NA12873, NA12874, NA12875, NA12878, NA12891, NA12892); sqlUpdate(conn, update->string); freeDyString(&update); freez(&rsId); freez(&SNPalleles); freez(&chrom); freez(&strand); freez(&assembly); freez(¢er); freez(&protLSID); freez(&assayLSID); freez(&panelLSID); freez(&NA06985); freez(&NA06991); freez(&NA06993); freez(&NA06993_dup); freez(&NA06994); freez(&NA07000); freez(&NA07019); freez(&NA07022); freez(&NA07029); freez(&NA07034); freez(&NA07048); freez(&NA07055); freez(&NA07056); freez(&NA07345); freez(&NA07348); freez(&NA07357); freez(&NA10830); freez(&NA10831); freez(&NA10835); freez(&NA10838); freez(&NA10839); freez(&NA10846); freez(&NA10847); freez(&NA10851); freez(&NA10854); freez(&NA10855); freez(&NA10856); freez(&NA10857); freez(&NA10859); freez(&NA10860); freez(&NA10861); freez(&NA10863); freez(&NA11829); freez(&NA11830); freez(&NA11831); freez(&NA11832); freez(&NA11839); freez(&NA11840); freez(&NA11881); freez(&NA11882); freez(&NA11992); freez(&NA11993); freez(&NA11993_dup); freez(&NA11994); freez(&NA11995); freez(&NA12003); freez(&NA12003_dup); freez(&NA12004); freez(&NA12005); freez(&NA12006); freez(&NA12043); freez(&NA12044); freez(&NA12056); freez(&NA12057); freez(&NA12144); freez(&NA12145); freez(&NA12146); freez(&NA12154); freez(&NA12155); freez(&NA12156); freez(&NA12156_dup); freez(&NA12234); freez(&NA12236); freez(&NA12239); freez(&NA12248); freez(&NA12248_dup); freez(&NA12249); freez(&NA12264); freez(&NA12707); freez(&NA12716); freez(&NA12717); freez(&NA12740); freez(&NA12750); freez(&NA12751); freez(&NA12752); freez(&NA12753); freez(&NA12760); freez(&NA12761); freez(&NA12762); freez(&NA12763); freez(&NA12801); freez(&NA12802); freez(&NA12812); freez(&NA12813); freez(&NA12814); freez(&NA12815); freez(&NA12864); freez(&NA12865); freez(&NA12872); freez(&NA12873); freez(&NA12874); freez(&NA12875); freez(&NA12878); freez(&NA12891); freez(&NA12892); }
void hapmapPrimateAllelesSaveToDbEscaped(struct sqlConnection *conn, struct hapmapPrimateAlleles *el, char *tableName, int updateSize) /* Save hapmapPrimateAlleles as a row to the table specified by tableName. * As blob fields may be arbitrary size updateSize specifies the approx size. * of a string that would contain the entire query. Automatically * escapes all simple strings (not arrays of string) but may be slower than hapmapPrimateAllelesSaveToDb(). * For example automatically copies and converts: * "autosql's features include" --> "autosql\'s features include" * before inserting into database. */ { struct dyString *update = newDyString(updateSize); char *chrom, *name, *strand, *refAllele, *otherAllele, *chimpChrom, *chimpStrand, *chimpAllele, *rhesusChrom, *rhesusStrand, *rhesusAllele; chrom = sqlEscapeString(el->chrom); name = sqlEscapeString(el->name); strand = sqlEscapeString(el->strand); refAllele = sqlEscapeString(el->refAllele); otherAllele = sqlEscapeString(el->otherAllele); chimpChrom = sqlEscapeString(el->chimpChrom); chimpStrand = sqlEscapeString(el->chimpStrand); chimpAllele = sqlEscapeString(el->chimpAllele); rhesusChrom = sqlEscapeString(el->rhesusChrom); rhesusStrand = sqlEscapeString(el->rhesusStrand); rhesusAllele = sqlEscapeString(el->rhesusAllele); dyStringPrintf(update, "insert into %s values ( '%s',%u,%u,'%s',%u,'%s','%s','%s','%s',%u,'%s','%s',%u,'%s',%u,'%s','%s',%u)", tableName, chrom, el->chromStart , el->chromEnd , name, el->score , strand, refAllele, otherAllele, chimpChrom, el->chimpPos , chimpStrand, chimpAllele, el->chimpQual , rhesusChrom, el->rhesusPos , rhesusStrand, rhesusAllele, el->rhesusQual ); sqlUpdate(conn, update->string); freeDyString(&update); freez(&chrom); freez(&name); freez(&strand); freez(&refAllele); freez(&otherAllele); freez(&chimpChrom); freez(&chimpStrand); freez(&chimpAllele); freez(&rhesusChrom); freez(&rhesusStrand); freez(&rhesusAllele); }