Package org.sqlite
Class Function
java.lang.Object
org.sqlite.Function
- Direct Known Subclasses:
Function.Aggregate
Provides an interface for creating SQLite user-defined functions.
A subclass of org.sqlite.Function can be registered with Function.create() and called by the name it was given. All functions must implement xFunc(), which is called when SQLite runs the custom function. E.g.
Class.forName("org.sqlite.JDBC"); Connection conn = DriverManager.getConnection("jdbc:sqlite:"); Function.create(conn, "myFunc", new Function() { protected void xFunc() { System.out.println("myFunc called!"); } }); conn.createStatement().execute("select myFunc();");
Arguments passed to a custom function can be accessed using the protected functions provided. args() returns the number of arguments passed, while value_<type>(int) returns the value of the specific argument. Similarly, a function can return a value using the result(<type>) function.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Provides an interface for creating SQLite user-defined aggregate functions.static class
Provides an interface for creating SQLite user-defined window functions. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
Flag to provide tocreate(Connection, String, Function, int)
that marks this Function as deterministic, making is usable in Indexes on Expressions. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final int
args()
Returns the number of arguments passed to the function.static void
create
(Connection conn, String name, Function f) Registers a given function with the connection.static void
create
(Connection conn, String name, Function f, int flags) Registers a given function with the connection.static void
create
(Connection conn, String name, Function f, int nArgs, int flags) Registers a given function with the connection.static void
destroy
(Connection conn, String name) Removes a named function from the given connection.static void
destroy
(Connection conn, String name, int nArgs) Removes a named function from the given connection.protected final void
Called by xFunc to throw an error.protected final void
result()
Called by xFunc to return a value.protected final void
result
(byte[] value) Called by xFunc to return a value.protected final void
result
(double value) Called by xFunc to return a value.protected final void
result
(int value) Called by xFunc to return a value.protected final void
result
(long value) Called by xFunc to return a value.protected final void
Called by xFunc to return a value.protected final byte[]
value_blob
(int arg) Called by xFunc to access the value of an argument.protected final double
value_double
(int arg) Called by xFunc to access the value of an argument.protected final int
value_int
(int arg) Called by xFunc to access the value of an argument.protected final long
value_long
(int arg) Called by xFunc to access the value of an argument.protected final String
value_text
(int arg) Called by xFunc to access the value of an argument.protected final int
value_type
(int arg) Called by xFunc to access the value of an argument.protected abstract void
xFunc()
Called by SQLite as a custom function.
-
Field Details
-
FLAG_DETERMINISTIC
public static final int FLAG_DETERMINISTICFlag to provide tocreate(Connection, String, Function, int)
that marks this Function as deterministic, making is usable in Indexes on Expressions.- See Also:
-
-
Constructor Details
-
Function
public Function()
-
-
Method Details
-
create
Registers a given function with the connection.- Parameters:
conn
- The connection.name
- The name of the function.f
- The function to register.- Throws:
SQLException
-
create
Registers a given function with the connection.- Parameters:
conn
- The connection.name
- The name of the function.f
- The function to register.flags
- Extra flags to pass, such asFLAG_DETERMINISTIC
- Throws:
SQLException
-
create
public static void create(Connection conn, String name, Function f, int nArgs, int flags) throws SQLException Registers a given function with the connection.- Parameters:
conn
- The connection.name
- The name of the function.f
- The function to register.nArgs
- The number of arguments that the function takes.flags
- Extra flags to pass, such asFLAG_DETERMINISTIC
- Throws:
SQLException
-
destroy
Removes a named function from the given connection.- Parameters:
conn
- The connection to remove the function from.name
- The name of the function.nArgs
- Ignored.- Throws:
SQLException
-
destroy
Removes a named function from the given connection.- Parameters:
conn
- The connection to remove the function from.name
- The name of the function.- Throws:
SQLException
-
xFunc
Called by SQLite as a custom function. Should access arguments through value_*(int), return results with result(*) and throw errors with error(String).- Throws:
SQLException
-
args
Returns the number of arguments passed to the function. Can only be called from xFunc().- Throws:
SQLException
-
result
Called by xFunc to return a value.- Parameters:
value
-- Throws:
SQLException
-
result
Called by xFunc to return a value.- Parameters:
value
-- Throws:
SQLException
-
result
Called by xFunc to return a value.- Parameters:
value
-- Throws:
SQLException
-
result
Called by xFunc to return a value.- Parameters:
value
-- Throws:
SQLException
-
result
Called by xFunc to return a value.- Throws:
SQLException
-
result
Called by xFunc to return a value.- Parameters:
value
-- Throws:
SQLException
-
error
Called by xFunc to throw an error.- Parameters:
err
-- Throws:
SQLException
-
value_text
Called by xFunc to access the value of an argument.- Parameters:
arg
-- Throws:
SQLException
-
value_blob
Called by xFunc to access the value of an argument.- Parameters:
arg
-- Throws:
SQLException
-
value_double
Called by xFunc to access the value of an argument.- Parameters:
arg
-- Throws:
SQLException
-
value_int
Called by xFunc to access the value of an argument.- Parameters:
arg
-- Throws:
SQLException
-
value_long
Called by xFunc to access the value of an argument.- Parameters:
arg
-- Throws:
SQLException
-
value_type
Called by xFunc to access the value of an argument.- Parameters:
arg
-- Throws:
SQLException
-