Logging

This guide assumes familiarity with:

To enable default query logging, just pass { logger: true } to the waddler initialization function:

import { waddler } from 'waddler/...'; // driver specific

const db = waddler({ logger: true });

You can also create a custom logger:

import { Logger } from 'waddler';
import { waddler } from 'waddler/...'; // driver specific

class MyLogger implements Logger {
  logQuery(query: string, params: unknown[]): void {
    console.log({ query, params });
  }
}

const db = waddler({ logger: new MyLogger() });

metadata

duckdb-neo
// metadata type
type metadataType = {
  get returnType(): ResultReturnType;
  get statementType(): StatementType;
  get columnCount(): number;
  get rowsChanged(): number;
}

// where ResultReturnType is
enum ResultType {
  INVALID = 0,
  CHANGED_ROWS = 1,
  NOTHING = 2,
  QUERY_RESULT = 3,
}
// and StatementType is
enum StatementType {
  INVALID = 0,
  SELECT = 1,
  INSERT = 2,
  UPDATE = 3,
  EXPLAIN = 4,
  DELETE = 5,
  PREPARE = 6,
  CREATE = 7,
  EXECUTE = 8,
  ALTER = 9,
  TRANSACTION = 10,
  COPY = 11,
  ANALYZE = 12,
  VARIABLE_SET = 13,
  CREATE_FUNC = 14,
  DROP = 15,
  EXPORT = 16,
  PRAGMA = 17,
  VACUUM = 18,
  CALL = 19,
  SET = 20,
  LOAD = 21,
  RELATION = 22,
  EXTENSION = 23,
  LOGICAL_PLAN = 24,
  ATTACH = 25,
  DETACH = 26,
  MULTI = 27,
}

// metadata example
{ columnCount: 1, returnType: 3, rowsChanged: 0, statementType: 1 }