int main (int argc, char* argv[]) { Node *result; READ_OPTIONS_AND_INIT("testvisit", "Run visit function on input for testing."); // read from terminal if (getStringOption("input.sql") == NULL) { result = parseStream(stdin); DEBUG_LOG("Address of returned node is <%p>", result); ERROR_LOG("PARSE RESULT FROM STREAM IS <%s>", beatify(nodeToString(result))); } // parse input string else { result = parseFromString(getStringOption("input.sql")); DEBUG_LOG("Address of returned node is <%p>", result); ERROR_LOG("PARSE RESULT FROM STRING IS:\n%s", nodeToString(result)); ERROR_LOG("PARSE RESULT FROM STRING IS:\n%s", beatify(nodeToString(result))); } void *state = NULL; visitTheNode(result, state); return shutdownApplication(); }
int main (int argc, char* argv[]) { Node *result; Node *qoModel; char *sql; READ_OPTIONS_AND_INIT("testtranslate", "Run all stages on input except provenance rewrite and output rewritten SQL code."); // read from terminal if (getStringOption("input.sql") == NULL) { result = parseStream(stdin); DEBUG_LOG("Address of returned node is <%p>", result); ERROR_LOG("PARSE RESULT FROM STREAM IS <%s>", beatify(nodeToString(result))); } // parse input string else { result = parseFromString(getStringOption("input.sql")); DEBUG_LOG("Address of returned node is <%p>", result); ERROR_LOG("PARSE RESULT FROM STRING IS:\n%s", beatify(nodeToString(result))); } qoModel = translateParse(result); INFO_LOG("TRANSLATION RESULT FROM STRING IS:\n%s", beatify(nodeToString(qoModel))); ERROR_LOG("SIMPLIFIED OPERATOR TREE:\n%s", operatorToOverviewString(qoModel)); sql = serializeOperatorModel(qoModel); ERROR_LOG("SERIALIZED SQL:\n%s", sql); return shutdownApplication(); }
void Communicator::receiveProlog(char *ans) { int bytesRecv = SOCKET_ERROR; int pos = 0; while (true) { recv(m_socket, &ans[pos], 1, 0); if (ans[pos] == '\n') break; pos++; } int matrix[6][6]; parseFromString(ans,matrix); for(unsigned int i=0;i<6;i++) { for(unsigned int j=0;j<6;j++) cout << matrix[i][j] << " "; cout << endl; } ans[pos] = 0; cout << "prolog answered: " << ans << endl; }
void SelectionCollection::parseRequestedFromString(const std::string &str) { Impl::RequestsClearer clearRequestsOnExit(&_impl->_requests); std::vector<Selection *> selections; parseFromString(str, &selections); std::vector<Selection *>::const_iterator first = selections.begin(); std::vector<Selection *>::const_iterator last = first; Impl::RequestList::const_iterator i; for (i = _impl->_requests.begin(); i != _impl->_requests.end(); ++i) { const Impl::SelectionRequest &request = *i; if (request.count() > 0) { if (selections.end() - first < request.count()) { GMX_THROW(InvalidInputError("Too few selections provided")); } last = first + request.count(); } else { if (i != _impl->_requests.end() - 1) { GMX_THROW(APIError("Request for all selections not the last option")); } last = selections.end(); } std::vector<Selection *> curr(first, last); request.storage->addSelections(curr, true); first = last; } if (last != selections.end()) { GMX_THROW(InvalidInputError("Too many selections provided")); } }
Jid::Jid(const QString &ANode, const QString &ADomane, const QString &AResource) { d = NULL; parseFromString(ANode+CharDog+ADomane+CharSlash+AResource); registerJidStreamOperators(); }
Jid::Jid(const QString &AJidStr) { d = NULL; parseFromString(AJidStr); registerJidStreamOperators(); }
Jid &Jid::operator=(const QString &AJidStr) { return parseFromString(AJidStr); }
void Jid::setResource(const QString &AResource) { parseFromString(node()+CharDog+domain()+CharSlash+AResource); }
void Jid::setDomain(const QString &ADomain) { parseFromString(node()+CharDog+ADomain+CharSlash+resource()); }
void Jid::setNode(const QString &ANode) { parseFromString(ANode+CharDog+domain()+CharSlash+resource()); }
rc testPICSGraph(void) { //RUN_TEST(testTableAccessRewrite(),"test table access rewrite for graphs"); initMetadataLookupPlugins(); chooseMetadataLookupPlugin(METADATA_LOOKUP_PLUGIN_ORACLE); initMetadataLookupPlugin(); List *res, *first; List *second; //Test projection //Check if the right result is returned char *s = "WITH x AS (SELECT a,b FROM test_graph_pi) SELECT a.a FROM x a, (SELECT a AS c, b AS d FROM x) b WHERE a.a = b.d AND a.a = 2"; char *sParse = "WITH x AS (SELECT a,b FROM test_graph_pi) SELECT m.a FROM x m, (SELECT a AS c, b AS d FROM x) n WHERE m.a = n.d AND m.a = 2;"; res = executeQuery(s); DEBUG_LOG("%s", nodeToString(res)); DEBUG_LOG("%s", beatify(nodeToString(res))); first = (List *)getHeadOfListP(res); second = (List *)getNthOfListP(res, 1); ASSERT_EQUALS_STRING(getHeadOfListP(first), "2", "First value is correct."); ASSERT_EQUALS_STRING(getHeadOfListP(second), "2", "Second value is correct."); //Then check the node has been rewritten only once Node *result; Node *qoModel; QueryOperator *rewriteQoModel, *op; result = parseFromString(sParse); qoModel = translateParse(result); op = (QueryOperator *) getHeadOfListP((List *) qoModel); rewriteQoModel = rewritePI_CS((ProvenanceComputation *) op); DEBUG_LOG("rewrite is %s", operatorToOverviewString((Node *) rewriteQoModel)); ASSERT_EQUALS_P((Node*)OP_LCHILD(OP_LCHILD(rewriteQoModel)), (Node*)OP_LCHILD(OP_LCHILD(OP_RCHILD(OP_LCHILD(rewriteQoModel)))),"The address of the children is same."); //Test aggregation s = "WITH x AS (SELECT sum(a) as a, b FROM test_graph_pi group by b) SELECT a.a FROM x a, (SELECT a AS c, b AS d FROM x) b WHERE a.a = b.c"; res = executeQuery(s); first = (List *)getHeadOfListP(res); ASSERT_EQUALS_STRING(getHeadOfListP(first), "3", "First value is correct."); /* result = parseFromString(getStringOption(s)); qoModel = translateParse(result); op = (QueryOperator *) getHeadOfListP((List *) qoModel); rewriteQoModel = rewritePI_CS((ProvenanceComputation *) op); ASSERT_EQUALS_P((Node*)OP_LCHILD(OP_LCHILD(rewriteQoModel)), (Node*)OP_RCHILD(OP_LCHILD(rewriteQoModel)),"The address of the children is same."); */ //Test join s = "WITH x AS (SELECT test_graph_pi.a, test_graph_pi2.c FROM test_graph_pi join test_graph_pi2 on test_graph_pi.B = test_graph_pi2.C) SELECT a.a FROM x a, (SELECT a AS c, c AS d FROM x) b WHERE a.a = b.c"; res = executeQuery(s); first = (List *)getHeadOfListP(res); second = (List *)getNthOfListP(res, 1); ASSERT_EQUALS_STRING(getHeadOfListP(first), "1", "First value is correct."); ASSERT_EQUALS_STRING(getHeadOfListP(second), "2", "Second value is correct."); /* result = parseFromString(getStringOption(s)); qoModel = translateParse(result); op = (QueryOperator *) getHeadOfListP((List *) qoModel); rewriteQoModel = rewritePI_CS((ProvenanceComputation *) op); ASSERT_EQUALS_P((Node*)OP_LCHILD(OP_LCHILD(rewriteQoModel)), (Node*)OP_RCHILD(OP_LCHILD(rewriteQoModel)),"The address of the children is same."); */ //Test set s = "WITH x AS (SELECT a FROM test_graph_pi UNION ALL SELECT a as c FROM test_graph_pi t) SELECT a.a FROM x a, (SELECT a AS c FROM x) WHERE c = 1 AND a = 1"; res = executeQuery(s); first = (List *)getHeadOfListP(res); second = (List *)getNthOfListP(res, 1); ASSERT_EQUALS_STRING(getHeadOfListP(first), "1", "First value is correct."); ASSERT_EQUALS_STRING(getHeadOfListP(second), "1", "Second value is correct."); /* result = parseFromString(getStringOption(s)); qoModel = translateParse(result); op = (QueryOperator *) getHeadOfListP((List *) qoModel); rewriteQoModel = rewritePI_CS((ProvenanceComputation *) op); ASSERT_EQUALS_P((Node*)OP_LCHILD(OP_LCHILD(rewriteQoModel)), (Node*)OP_RCHILD(OP_LCHILD(rewriteQoModel)),"The address of the children is same."); */ //Test order s = "WITH x AS (SELECT * FROM test_graph_pi ORDER BY a) SELECT a.a FROM x a, (SELECT a AS c FROM x) WHERE c = 2 AND a = 2"; res = executeQuery(s); first = (List *)getHeadOfListP(res); ASSERT_EQUALS_STRING(getHeadOfListP(first), "2", "First value is correct."); /* result = parseFromString(getStringOption(s)); qoModel = translateParse(result); op = (QueryOperator *) getHeadOfListP((List *) qoModel); rewriteQoModel = rewritePI_CS((ProvenanceComputation *) op); ASSERT_EQUALS_P((Node*)OP_LCHILD(OP_LCHILD(rewriteQoModel)), (Node*)OP_RCHILD(OP_LCHILD(rewriteQoModel)),"The address of the children is same."); */ //Test duplicate removal s = "WITH x AS (SELECT a FROM test_graph_pi UNION SELECT a as c FROM test_graph_pi t) SELECT a.a FROM x a, (SELECT a AS c FROM x) WHERE c = 1 AND a = 1"; res = executeQuery(s); first = (List *)getHeadOfListP(res); ASSERT_EQUALS_STRING(getHeadOfListP(first), "1", "First value is correct."); /* result = parseFromString(getStringOption(s)); qoModel = translateParse(result); op = (QueryOperator *) getHeadOfListP((List *) qoModel); rewriteQoModel = rewritePI_CS((ProvenanceComputation *) op); ASSERT_EQUALS_P((Node*)OP_LCHILD(OP_LCHILD(rewriteQoModel)), (Node*)OP_RCHILD(OP_LCHILD(rewriteQoModel)),"The address of the children is same."); */ return PASS; }