private String describeAndLogLoadFailure( QualifiedName name ) { String nameStr = name.toString(); String description = nameStr + " is unavailable because it is sandboxed and has dependencies outside of the sandbox. " + "Sandboxing is controlled by the " + procedure_unrestricted.name() + " setting. " + "Only unrestrict procedures you can trust with access to database internals."; log.warn( description ); return description; }
private FunctionResult( UserFunctionSignature signature ) { this.name = signature.name().toString(); this.signature = signature.toString(); this.description = signature.description().orElse( "" ); } }
String definedName = method.getAnnotation( UserFunction.class ).name(); QualifiedName funcName = extractName( fcnDefinition, method, valueName, definedName ); if ( config.isWhitelisted( funcName.toString() ) ) funcName.toString() ) ); out.sort( Comparator.comparing( a -> a.signature().name().toString() ) ); return out;
@Description( "List all procedures in the DBMS." ) @Procedure( name = "dbms.procedures", mode = DBMS ) public Stream<ProcedureResult> listProcedures() { securityContext.assertCredentialsNotExpired(); return graph.getDependencyResolver().resolveDependency( Procedures.class ).getAllProcedures().stream() .sorted( Comparator.comparing( a -> a.name().toString() ) ) .map( ProcedureResult::new ); }
@Description( "List all user functions in the DBMS." ) @Procedure( name = "dbms.functions", mode = DBMS ) public Stream<FunctionResult> listFunctions() { securityContext.assertCredentialsNotExpired(); return graph.getDependencyResolver().resolveDependency( Procedures.class ).getAllFunctions().stream() .sorted( Comparator.comparing( a -> a.name().toString() ) ) .map( FunctionResult::new ); }
private ProcedureResult( ProcedureSignature signature ) { this.name = signature.name().toString(); this.signature = signature.toString(); this.description = signature.description().orElse( "" ); this.mode = signature.mode().toString(); } }
if ( !config.fullAccessFor( procName.toString() ) ) UserFunctionSignature signature = new UserFunctionSignature( procName, inputSignature, typeChecker.type(), deprecated, config.rolesFor( procName.toString() ), description, false ); return new FailedLoadFunction( signature ); config.rolesFor( procName.toString() ), description, false );
@Test public void shouldAllowOverridingProcedureName() throws Throwable { // When CallableUserFunction proc = compile( FunctionWithOverriddenName.class ).get( 0 ); // Then assertEquals("org.mystuff.thisisActuallyTheName", proc.signature().name().toString() ); }
@Test public void shouldAllowOverridingProcedureName() throws Throwable { // When CallableUserAggregationFunction method = compile( FunctionWithOverriddenName.class ).get( 0 ); // Then assertEquals("org.mystuff.thisisActuallyTheName", method.signature().name().toString() ); }
@Test public void shouldAllowOverridingProcedureNameWithoutNamespace() throws Throwable { // When CallableProcedure proc = compile( ProcedureWithSingleName.class ).get( 0 ); // Then assertEquals("singleName", proc.signature().name().toString() ); }
@Test public void shouldAllowOverridingProcedureName() throws Throwable { // When CallableProcedure proc = compile( ProcedureWithOverriddenName.class ).get( 0 ); // Then assertEquals("org.mystuff.thisisActuallyTheName", proc.signature().name().toString() ); }
private String describeAndLogLoadFailure( QualifiedName name ) { String nameStr = name.toString(); String description = nameStr + " is unavailable because it is sandboxed and has dependencies outside of the sandbox. " + "Sandboxing is controlled by the " + procedure_unrestricted.name() + " setting. " + "Only unrestrict procedures you can trust with access to database internals."; log.warn( description ); return description; }
private FunctionResult( UserFunctionSignature signature ) { this.name = signature.name().toString(); this.signature = signature.toString(); this.description = signature.description().orElse( "" ); } }
@Description( "List all user functions in the DBMS." ) @Procedure( name = "dbms.functions", mode = DBMS ) public Stream<FunctionResult> listFunctions() { securityContext.assertCredentialsNotExpired(); return graph.getDependencyResolver().resolveDependency( Procedures.class ).getAllFunctions().stream() .sorted( Comparator.comparing( a -> a.name().toString() ) ) .map( FunctionResult::new ); }
@Description( "List all user functions in the DBMS." ) @Procedure( name = "dbms.functions", mode = DBMS ) public Stream<FunctionResult> listFunctions() { securityContext.assertCredentialsNotExpired(); return graph.getDependencyResolver().resolveDependency( Procedures.class ).getAllFunctions().stream() .sorted( Comparator.comparing( a -> a.name().toString() ) ) .map( FunctionResult::new ); }
private ProcedureResult( ProcedureSignature signature ) { this.name = signature.name().toString(); this.signature = signature.toString(); this.description = signature.description().orElse( "" ); this.mode = signature.mode().toString(); } }