loadExtesnion method

void loadExtesnion(
  1. String zFile
)

Implementation

void loadExtesnion(String zFile) {
  // FIXME https://www.sqlite.org/c3ref/enable_load_extension.html
  binding.sqlite3EnableLoadExtension(handle.cast(), 1);

  final errorOut = malloc<Pointer<Utf8>>();
  final ret = binding.sqlite3LoadExtension(
      handle.cast(), zFile.toNativeUtf8(), nullptr, errorOut);
  try {
    if (ret != 0) {
      throw Exception(
          'Error loading extension($ret): ${errorOut.value.toDartString()}');
    }
  } finally {
    malloc.free(errorOut);
  }

  binding.sqlite3EnableLoadExtension(handle.cast(), 0);
}