// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> unsigned long PostgreSQLDatabase::lastInsertId(const char* table) { if ( !beginQuery((std::string("select currval('") + table + "_seq')").c_str()) ) return 0; char* value = PQgetvalue(_result, 0, 0); endQuery(); return value?atoi(value):0; }
void MetricBackend_opengl::beginQuery(QueryBoundary boundary) { // GPU related if (glQueriesNeeded[boundary]) { std::array<GLuint, QUERY_LIST_END> query; glGenQueries(QUERY_LIST_END, query.data()); if (metrics[METRIC_GPU_START].profiled[boundary] || (metrics[METRIC_GPU_DURATION].profiled[boundary] && supportsTimestamp)) { glQueryCounter(query[QUERY_GPU_START], GL_TIMESTAMP); } if (metrics[METRIC_GPU_DURATION].profiled[boundary] && !supportsTimestamp) { glBeginQuery(GL_TIME_ELAPSED, query[QUERY_GPU_DURATION]); } if (metrics[METRIC_GPU_PIXELS].profiled[boundary]) { glBeginQuery(GL_SAMPLES_PASSED, query[QUERY_OCCLUSION]); } queries[boundary].push(std::move(query)); } // CPU related if (metrics[METRIC_CPU_START].profiled[boundary] || metrics[METRIC_CPU_DURATION].profiled[boundary]) { cpuStart[boundary] = getCurrentTime(); if (metrics[METRIC_CPU_START].profiled[boundary]) { int64_t time = cpuStart[boundary] * cpuTimeScale - baseTime; data[METRIC_CPU_START][boundary]->addData(boundary, time); } } if (metrics[METRIC_CPU_VSIZE_START].profiled[boundary] || metrics[METRIC_CPU_VSIZE_DURATION].profiled[boundary]) { vsizeStart[boundary] = os::getVsize(); if (metrics[METRIC_CPU_VSIZE_START].profiled[boundary]) { int64_t time = vsizeStart[boundary]; data[METRIC_CPU_VSIZE_START][boundary]->addData(boundary, time); } } if (metrics[METRIC_CPU_RSS_START].profiled[boundary] || metrics[METRIC_CPU_RSS_DURATION].profiled[boundary]) { rssStart[boundary] = os::getRss(); if (metrics[METRIC_CPU_RSS_START].profiled[boundary]) { int64_t time = rssStart[boundary]; data[METRIC_CPU_RSS_START][boundary]->addData(boundary, time); } } queryInProgress[boundary] = true; // DRAWCALL is a CALL if (boundary == QUERY_BOUNDARY_DRAWCALL) beginQuery(QUERY_BOUNDARY_CALL); }
void ThrottledTextureUploader::uploadTexture(CCResourceProvider* resourceProvider, Parameters upload) { bool isFullUpload = upload.destOffset.isZero() && upload.sourceRect.size() == upload.texture->texture()->size(); if (isFullUpload) beginQuery(); upload.texture->updateRect(resourceProvider, upload.sourceRect, upload.destOffset); if (isFullUpload) endQuery(); }
QT_BEGIN_NAMESPACE // #define QSPARQL_PREFETCH 255 void QSparqlQueryModelPrivate::addData(int totalResults) { if (newQuery) { beginQuery(totalResults); newQuery = false; } else { prefetch(totalResults); } }