tp: cleanup unused interface (#4757)

diff --git a/Android.bp b/Android.bp
index 1f828f1..41615ba 100644
--- a/Android.bp
+++ b/Android.bp
@@ -2810,7 +2810,6 @@
         ":perfetto_src_trace_processor_perfetto_sql_generator_generator",
         ":perfetto_src_trace_processor_perfetto_sql_grammar_grammar",
         ":perfetto_src_trace_processor_perfetto_sql_intrinsics_functions_functions",
-        ":perfetto_src_trace_processor_perfetto_sql_intrinsics_functions_interface",
         ":perfetto_src_trace_processor_perfetto_sql_intrinsics_functions_trees_trees",
         ":perfetto_src_trace_processor_perfetto_sql_intrinsics_operators_operators",
         ":perfetto_src_trace_processor_perfetto_sql_intrinsics_table_functions_interface",
@@ -15427,14 +15426,6 @@
     ],
 }
 
-// GN: //src/trace_processor/perfetto_sql/intrinsics/functions:interface
-filegroup {
-    name: "perfetto_src_trace_processor_perfetto_sql_intrinsics_functions_interface",
-    srcs: [
-        "src/trace_processor/perfetto_sql/intrinsics/functions/sql_function.cc",
-    ],
-}
-
 // GN: //src/trace_processor/perfetto_sql/intrinsics/functions:tables
 genrule {
     name: "perfetto_src_trace_processor_perfetto_sql_intrinsics_functions_tables",
@@ -16218,7 +16209,6 @@
         ":perfetto_src_trace_processor_perfetto_sql_generator_generator",
         ":perfetto_src_trace_processor_perfetto_sql_grammar_grammar",
         ":perfetto_src_trace_processor_perfetto_sql_intrinsics_functions_functions",
-        ":perfetto_src_trace_processor_perfetto_sql_intrinsics_functions_interface",
         ":perfetto_src_trace_processor_perfetto_sql_intrinsics_functions_trees_trees",
         ":perfetto_src_trace_processor_perfetto_sql_intrinsics_operators_operators",
         ":perfetto_src_trace_processor_perfetto_sql_intrinsics_table_functions_interface",
@@ -18615,7 +18605,6 @@
         ":perfetto_src_trace_processor_perfetto_sql_generator_unittests",
         ":perfetto_src_trace_processor_perfetto_sql_grammar_grammar",
         ":perfetto_src_trace_processor_perfetto_sql_intrinsics_functions_functions",
-        ":perfetto_src_trace_processor_perfetto_sql_intrinsics_functions_interface",
         ":perfetto_src_trace_processor_perfetto_sql_intrinsics_functions_trees_trees",
         ":perfetto_src_trace_processor_perfetto_sql_intrinsics_functions_unittests",
         ":perfetto_src_trace_processor_perfetto_sql_intrinsics_operators_operators",
@@ -19493,7 +19482,6 @@
         ":perfetto_src_trace_processor_perfetto_sql_generator_generator",
         ":perfetto_src_trace_processor_perfetto_sql_grammar_grammar",
         ":perfetto_src_trace_processor_perfetto_sql_intrinsics_functions_functions",
-        ":perfetto_src_trace_processor_perfetto_sql_intrinsics_functions_interface",
         ":perfetto_src_trace_processor_perfetto_sql_intrinsics_functions_trees_trees",
         ":perfetto_src_trace_processor_perfetto_sql_intrinsics_operators_operators",
         ":perfetto_src_trace_processor_perfetto_sql_intrinsics_table_functions_interface",
@@ -20001,7 +19989,6 @@
         ":perfetto_src_trace_processor_perfetto_sql_generator_generator",
         ":perfetto_src_trace_processor_perfetto_sql_grammar_grammar",
         ":perfetto_src_trace_processor_perfetto_sql_intrinsics_functions_functions",
-        ":perfetto_src_trace_processor_perfetto_sql_intrinsics_functions_interface",
         ":perfetto_src_trace_processor_perfetto_sql_intrinsics_functions_trees_trees",
         ":perfetto_src_trace_processor_perfetto_sql_intrinsics_operators_operators",
         ":perfetto_src_trace_processor_perfetto_sql_intrinsics_table_functions_interface",
diff --git a/BUILD b/BUILD
index 243860e..8953822 100644
--- a/BUILD
+++ b/BUILD
@@ -399,7 +399,6 @@
         ":src_trace_processor_perfetto_sql_generator_generator",
         ":src_trace_processor_perfetto_sql_grammar_grammar",
         ":src_trace_processor_perfetto_sql_intrinsics_functions_functions",
-        ":src_trace_processor_perfetto_sql_intrinsics_functions_interface",
         ":src_trace_processor_perfetto_sql_intrinsics_functions_tables",
         ":src_trace_processor_perfetto_sql_intrinsics_functions_trees_trees",
         ":src_trace_processor_perfetto_sql_intrinsics_operators_operators",
@@ -606,7 +605,6 @@
         ":src_trace_processor_perfetto_sql_generator_generator",
         ":src_trace_processor_perfetto_sql_grammar_grammar",
         ":src_trace_processor_perfetto_sql_intrinsics_functions_functions",
-        ":src_trace_processor_perfetto_sql_intrinsics_functions_interface",
         ":src_trace_processor_perfetto_sql_intrinsics_functions_tables",
         ":src_trace_processor_perfetto_sql_intrinsics_functions_trees_trees",
         ":src_trace_processor_perfetto_sql_intrinsics_operators_operators",
@@ -3204,15 +3202,6 @@
     ],
 )
 
-# GN target: //src/trace_processor/perfetto_sql/intrinsics/functions:interface
-perfetto_filegroup(
-    name = "src_trace_processor_perfetto_sql_intrinsics_functions_interface",
-    srcs = [
-        "src/trace_processor/perfetto_sql/intrinsics/functions/sql_function.cc",
-        "src/trace_processor/perfetto_sql/intrinsics/functions/sql_function.h",
-    ],
-)
-
 # GN target: //src/trace_processor/perfetto_sql/intrinsics/functions:tables
 perfetto_cc_tp_tables(
     name = "src_trace_processor_perfetto_sql_intrinsics_functions_tables",
@@ -8225,7 +8214,6 @@
         ":src_trace_processor_perfetto_sql_generator_generator",
         ":src_trace_processor_perfetto_sql_grammar_grammar",
         ":src_trace_processor_perfetto_sql_intrinsics_functions_functions",
-        ":src_trace_processor_perfetto_sql_intrinsics_functions_interface",
         ":src_trace_processor_perfetto_sql_intrinsics_functions_tables",
         ":src_trace_processor_perfetto_sql_intrinsics_functions_trees_trees",
         ":src_trace_processor_perfetto_sql_intrinsics_operators_operators",
@@ -8461,7 +8449,6 @@
         ":src_trace_processor_perfetto_sql_generator_generator",
         ":src_trace_processor_perfetto_sql_grammar_grammar",
         ":src_trace_processor_perfetto_sql_intrinsics_functions_functions",
-        ":src_trace_processor_perfetto_sql_intrinsics_functions_interface",
         ":src_trace_processor_perfetto_sql_intrinsics_functions_tables",
         ":src_trace_processor_perfetto_sql_intrinsics_functions_trees_trees",
         ":src_trace_processor_perfetto_sql_intrinsics_operators_operators",
diff --git a/src/trace_processor/perfetto_sql/engine/BUILD.gn b/src/trace_processor/perfetto_sql/engine/BUILD.gn
index feb75b4..550b627 100644
--- a/src/trace_processor/perfetto_sql/engine/BUILD.gn
+++ b/src/trace_processor/perfetto_sql/engine/BUILD.gn
@@ -40,7 +40,6 @@
     "../../../base",
     "../../containers",
     "../../core/dataframe",
-    "../../perfetto_sql/intrinsics/functions:interface",
     "../../perfetto_sql/intrinsics/table_functions:interface",
     "../../sqlite",
     "../../types",
diff --git a/src/trace_processor/perfetto_sql/intrinsics/functions/BUILD.gn b/src/trace_processor/perfetto_sql/intrinsics/functions/BUILD.gn
index 517ccfe..f59a8dd 100644
--- a/src/trace_processor/perfetto_sql/intrinsics/functions/BUILD.gn
+++ b/src/trace_processor/perfetto_sql/intrinsics/functions/BUILD.gn
@@ -101,7 +101,6 @@
     "../../parser",
     "../types",
   ]
-  public_deps = [ ":interface" ]
   if (enable_perfetto_llvm_symbolizer) {
     sources += [
       "symbolize.cc",
@@ -114,19 +113,6 @@
   }
 }
 
-source_set("interface") {
-  sources = [
-    "sql_function.cc",
-    "sql_function.h",
-  ]
-  deps = [
-    "../../../../../gn:default_deps",
-    "../../../../../gn:sqlite",
-    "../../../../../include/perfetto/trace_processor:basic_types",
-    "../../../../base",
-  ]
-}
-
 perfetto_tp_tables("tables") {
   sources = [ "tables.py" ]
 }
diff --git a/src/trace_processor/perfetto_sql/intrinsics/functions/sql_function.cc b/src/trace_processor/perfetto_sql/intrinsics/functions/sql_function.cc
deleted file mode 100644
index b18b184..0000000
--- a/src/trace_processor/perfetto_sql/intrinsics/functions/sql_function.cc
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "src/trace_processor/perfetto_sql/intrinsics/functions/sql_function.h"
-
-#include "perfetto/base/status.h"
-
-namespace perfetto::trace_processor {
-
-base::Status LegacySqlFunction::VerifyPostConditions(Context*) {
-  return base::OkStatus();
-}
-
-void LegacySqlFunction::Cleanup(Context*) {}
-
-}  // namespace perfetto::trace_processor
diff --git a/src/trace_processor/perfetto_sql/intrinsics/functions/sql_function.h b/src/trace_processor/perfetto_sql/intrinsics/functions/sql_function.h
deleted file mode 100644
index 6d5321a..0000000
--- a/src/trace_processor/perfetto_sql/intrinsics/functions/sql_function.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SRC_TRACE_PROCESSOR_PERFETTO_SQL_INTRINSICS_FUNCTIONS_SQL_FUNCTION_H_
-#define SRC_TRACE_PROCESSOR_PERFETTO_SQL_INTRINSICS_FUNCTIONS_SQL_FUNCTION_H_
-
-#include <sqlite3.h>
-
-#include "perfetto/base/status.h"
-#include "perfetto/trace_processor/basic_types.h"
-
-namespace perfetto {
-namespace trace_processor {
-
-// LEGACY DO NOT CREATE ANY MORE IMPLEMENTATIONS OF THIS FUNCTION. Use
-// sqlite::Function instead.
-//
-// Prototype for a C++ function which can be registered with SQLite.
-//
-// Usage
-//
-// Define a subclass of this struct as follows:
-// struct YourFunction : public LegacySqlFunction {
-//   // Optional if you want a custom context object (i.e. an object
-//   // passed in at registration time which will be passed to Run on
-//   // every invocation)
-//   struct YourContext { /* define context fields here */ };
-//
-//   static base::Status Run(/* see parameters below */) {
-//     /* function body here */
-//   }
-//
-//   static base::Status Cleanup(/* see parameters below */) {
-//     /* function body here */
-//   }
-// }
-//
-// Then, register this function with SQLite using RegisterFunction (see below);
-// you'll likely want to do this in TraceProcessorImpl:
-// RegisterFunction<YourFunction>(/* see arguments below */)
-struct LegacySqlFunction {
-  // The type of the context object which will be passed to the function.
-  // Can be redefined in any sub-classes to override the context.
-  using Context = void;
-
-  // Indicates whether this function is "void" (i.e. doesn't actually want
-  // to return a value). While the function will still return null in SQL
-  // (because SQLite does not actually allow null functions), for accounting
-  // purposes, this null will be ignored when verifying whether this statement
-  // has any output.
-  // Can be redefined in any sub-classes to override it.
-  // If this is set to true, subclasses must not modify |out| or |destructors|.
-  static constexpr bool kVoidReturn = false;
-
-  // Struct which holds destructors for strings/bytes returned from the
-  // function. Passed as an argument to |Run| to allow implementations to
-  // override the destructors.
-  struct Destructors {
-    // This matches SQLITE_TRANSIENT constant which we cannot use because it
-    // expands to a C-style cast, causing compiler warnings.
-    sqlite3_destructor_type string_destructor =
-        reinterpret_cast<sqlite3_destructor_type>(-1);
-    sqlite3_destructor_type bytes_destructor =
-        reinterpret_cast<sqlite3_destructor_type>(-1);
-  };
-
-  // The function which will be executed with the arguments from SQL.
-  //
-  // Implementations MUST define this function themselves; this function is
-  // declared but *not* defined so linker errors will be thrown if not defined.
-  //
-  // |ctx|:         the context object passed at registration time.
-  // |argc|:        number of arguments.
-  // |argv|:        arguments to the function.
-  // |out|:         the return value of the function.
-  // |destructors|: destructors for string/bytes return values.
-  static base::Status Run(Context* ctx,
-                          size_t argc,
-                          sqlite3_value** argv,
-                          SqlValue& out,
-                          Destructors& destructors);
-
-  // Executed after the result from |Run| is reported to SQLite.
-  // Allows implementations to verify post-conditions without needing to worry
-  // about overwriting return types.
-  //
-  // Implementations do not need to define this function; a default no-op
-  // implementation will be used in this case.
-  static base::Status VerifyPostConditions(Context*);
-
-  // Executed after the result from |Run| is reported to SQLite.
-  // Allows any pending state to be cleaned up post-copy of results by SQLite:
-  // this function will be called even if |Run| or |PostRun| returned errors.
-  //
-  // Implementations do not need to define this function; a default no-op
-  // implementation will be used in this case.
-  static void Cleanup(Context*);
-};
-
-}  // namespace trace_processor
-}  // namespace perfetto
-
-#endif  // SRC_TRACE_PROCESSOR_PERFETTO_SQL_INTRINSICS_FUNCTIONS_SQL_FUNCTION_H_
diff --git a/src/trace_processor/perfetto_sql/intrinsics/functions/stack_functions.cc b/src/trace_processor/perfetto_sql/intrinsics/functions/stack_functions.cc
index abec842..7ff29b2 100644
--- a/src/trace_processor/perfetto_sql/intrinsics/functions/stack_functions.cc
+++ b/src/trace_processor/perfetto_sql/intrinsics/functions/stack_functions.cc
@@ -34,7 +34,6 @@
 #include "perfetto/trace_processor/status.h"
 #include "protos/perfetto/trace_processor/stack.pbzero.h"
 #include "src/trace_processor/perfetto_sql/engine/perfetto_sql_engine.h"
-#include "src/trace_processor/perfetto_sql/intrinsics/functions/sql_function.h"
 #include "src/trace_processor/sqlite/bindings/sqlite_function.h"
 #include "src/trace_processor/sqlite/bindings/sqlite_result.h"
 #include "src/trace_processor/sqlite/bindings/sqlite_type.h"