Package io.inversion.cosmosdb
Class CosmosSqlQuery
java.lang.Object
io.inversion.query.Builder<T,T>
io.inversion.query.Query<io.inversion.jdbc.SqlQuery,D,io.inversion.query.Select<io.inversion.query.Select<io.inversion.query.Select,io.inversion.jdbc.SqlQuery>,io.inversion.jdbc.SqlQuery>,io.inversion.query.From<io.inversion.query.From<io.inversion.query.From,io.inversion.jdbc.SqlQuery>,io.inversion.jdbc.SqlQuery>,io.inversion.query.Where<io.inversion.query.Where<io.inversion.query.Where,io.inversion.jdbc.SqlQuery>,io.inversion.jdbc.SqlQuery>,io.inversion.query.Group<io.inversion.query.Group<io.inversion.query.Group,io.inversion.jdbc.SqlQuery>,io.inversion.jdbc.SqlQuery>,io.inversion.query.Order<io.inversion.query.Order<io.inversion.query.Order,io.inversion.jdbc.SqlQuery>,io.inversion.jdbc.SqlQuery>,io.inversion.query.Page<io.inversion.query.Page<io.inversion.query.Page,io.inversion.jdbc.SqlQuery>,io.inversion.jdbc.SqlQuery>>
io.inversion.jdbc.SqlQuery<CosmosDb>
io.inversion.cosmosdb.CosmosSqlQuery
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class io.inversion.jdbc.SqlQuery
io.inversion.jdbc.SqlQuery.Parts -
Field Summary
Fields inherited from class io.inversion.jdbc.SqlQuery
columnQuote, stringQuoteFields inherited from class io.inversion.query.Query
castValues, collection, db, dryRun, from, group, order, originalValues, page, select, whereFields inherited from class io.inversion.query.Builder
builders, functions, parent, terms -
Constructor Summary
ConstructorsConstructorDescriptionCosmosSqlQuery(CosmosDb db, io.inversion.Collection table, List<io.inversion.rql.Term> terms) -
Method Summary
Modifier and TypeMethodDescriptionprotected StringasString(io.inversion.rql.Term term) Overridden to exclude rdbms style '%' wildcards that are not needed for cosmos sw and ew queries.protected StringasVariableName(int valuesPairIdx) Cosmos does not use "?" ansi sql style prepared statement vars, it uses named variables prefixed with '@'.protected io.inversion.query.Whereio.inversion.ResultsdoSelect()protected List<io.inversion.query.Order.Sort>getDefaultSorts(io.inversion.jdbc.SqlQuery.Parts parts) The inversion configured primary index should contain at least the document identifier and the partition key.protected StringprintExpression(io.inversion.rql.Term term, List<String> dynamicSqlChildText, List<String> preparedStmtChildText) protected StringprintLimitClause(io.inversion.jdbc.SqlQuery.Parts parts, int offset, int limit) Both offset and limit are required per cosmos spec.protected StringtoSql(boolean preparedStmt) Makes a few blanked tweaks to the sql created by the SqlQuery superclass to make it Cosmos compliantMethods inherited from class io.inversion.jdbc.SqlQuery
addTerm, asBool, asNum, asString, concatAll, getDynamicStmt, getPreparedStmt, getType, isBool, isCol, isNum, printCol, printGroupClause, printInitialSelect, printJoins, printOrderClause, printSql, printTableAlias, printTerm, printTermsSelect, printWhereClause, queryFoundRows, quoteCol, replace, withColumnQuote, withDb, withStringQuote, withTypeMethods inherited from class io.inversion.query.Query
clearValues, createFrom, createGroup, createOrder, createPage, createSelect, getBuilders, getCollection, getColValue, getColValueKeys, getColValues, getDb, getFrom, getGroup, getNumValues, getOrder, getOriginalValues, getPage, getSelect, getValues, getWhere, isDryRun, withCollection, withColValue, withDryRun, withTermMethods inherited from class io.inversion.query.Builder
clearFunctions, find, find, findAll, findAll, findInt, findTerm, getParent, getRoot, getTerms, isFunction, parse, r, removeBuilder, toString, toString, withBuilder, withFunctions, withFunctions, withParent, withTerm, withTerm, withTerms
-
Constructor Details
-
CosmosSqlQuery
-
-
Method Details
-
createWhere
protected io.inversion.query.Where createWhere()- Overrides:
createWherein classio.inversion.query.Query<io.inversion.jdbc.SqlQuery,CosmosDb, io.inversion.query.Select<io.inversion.query.Select<io.inversion.query.Select, io.inversion.jdbc.SqlQuery>, io.inversion.jdbc.SqlQuery>, io.inversion.query.From<io.inversion.query.From<io.inversion.query.From, io.inversion.jdbc.SqlQuery>, io.inversion.jdbc.SqlQuery>, io.inversion.query.Where<io.inversion.query.Where<io.inversion.query.Where, io.inversion.jdbc.SqlQuery>, io.inversion.jdbc.SqlQuery>, io.inversion.query.Group<io.inversion.query.Group<io.inversion.query.Group, io.inversion.jdbc.SqlQuery>, io.inversion.jdbc.SqlQuery>, io.inversion.query.Order<io.inversion.query.Order<io.inversion.query.Order, io.inversion.jdbc.SqlQuery>, io.inversion.jdbc.SqlQuery>, io.inversion.query.Page<io.inversion.query.Page<io.inversion.query.Page, io.inversion.jdbc.SqlQuery>, io.inversion.jdbc.SqlQuery>>
-
doSelect
public io.inversion.Results doSelect() throws io.inversion.ApiException- Overrides:
doSelectin classio.inversion.jdbc.SqlQuery<CosmosDb>- Throws:
io.inversion.ApiException
-
toSql
Makes a few blanked tweaks to the sql created by the SqlQuery superclass to make it Cosmos compliantReplaces:
- SELECT "table".* FROM "table" -@gt; SELECT * FROM table
- "table"."column" -@gt; table["column"]
- Overrides:
toSqlin classio.inversion.jdbc.SqlQuery<CosmosDb>- See Also:
-
getDefaultSorts
protected List<io.inversion.query.Order.Sort> getDefaultSorts(io.inversion.jdbc.SqlQuery.Parts parts) The inversion configured primary index should contain at least the document identifier and the partition key. If you don't supply a sort key on the query string that would default to adding two fields to the sort. If you did not configure cosmos to have a compound search index, that would fail...simply solution...if you did not supply a sort on the query string, just search by the "id" field.- Overrides:
getDefaultSortsin classio.inversion.jdbc.SqlQuery<CosmosDb>
-
printLimitClause
Both offset and limit are required per cosmos spec.- Overrides:
printLimitClausein classio.inversion.jdbc.SqlQuery<CosmosDb>- See Also:
-
asVariableName
Cosmos does not use "?" ansi sql style prepared statement vars, it uses named variables prefixed with '@'.- Overrides:
asVariableNamein classio.inversion.jdbc.SqlQuery<CosmosDb>
-
asString
Overridden to exclude rdbms style '%' wildcards that are not needed for cosmos sw and ew queries.- Overrides:
asStringin classio.inversion.jdbc.SqlQuery<CosmosDb>- Returns:
- the term as a string approperiate for use in a cosmos query
-
printExpression
protected String printExpression(io.inversion.rql.Term term, List<String> dynamicSqlChildText, List<String> preparedStmtChildText) - Overrides:
printExpressionin classio.inversion.jdbc.SqlQuery<CosmosDb>
-