mirror of https://github.com/citusdata/citus.git
43 lines
1.1 KiB
C
43 lines
1.1 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* test/src/deparse_function_query.c
|
|
*
|
|
* This file contains functions to exercise deparsing of
|
|
* CREATE|ALTER|DROP [...] {FUNCTION|PROCEDURE} ...
|
|
* queries
|
|
*
|
|
* Copyright (c) Citus Data, Inc.
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
|
|
#include "postgres.h"
|
|
|
|
#include "distributed/deparser.h"
|
|
#include "distributed/multi_executor.h"
|
|
#include "utils/builtins.h"
|
|
|
|
/* declarations for dynamic loading */
|
|
PG_FUNCTION_INFO_V1(deparse_test);
|
|
|
|
|
|
/*
|
|
* deparse_test UDF is a UDF to test deparsing in Citus.
|
|
*
|
|
* This function accepts a query string; parses, qualifies and then deparses it to create
|
|
* a qualified query string.
|
|
*/
|
|
Datum
|
|
deparse_test(PG_FUNCTION_ARGS)
|
|
{
|
|
text *queryStringText = PG_GETARG_TEXT_P(0);
|
|
|
|
char *queryStringChar = text_to_cstring(queryStringText);
|
|
Query *query = ParseQueryString(queryStringChar, NULL, 0);
|
|
|
|
QualifyTreeNode(query->utilityStmt);
|
|
const char *deparsedQuery = DeparseTreeNode(query->utilityStmt);
|
|
|
|
PG_RETURN_TEXT_P(cstring_to_text(deparsedQuery));
|
|
}
|