@Override
	protected void createDatabase(Configuration config) throws SQLException {
		try {
			super.createDatabase(config);

			Connection db = super.initConnection();
			try (Statement st = db.createStatement()) {

				st.executeUpdate("CREATE EXTENSION IF NOT EXISTS lshvector");
				st.executeUpdate(
					"CREATE TABLE vectable(id BIGINT UNIQUE,count INTEGER,vec lshvector)");
				st.executeUpdate(
					"CREATE INDEX vectable_vec_idx ON vectable USING gin (vec gin_lshvector_ops)");
				createVectorFunctions(st);

				st.executeUpdate("REVOKE ALL ON SCHEMA PUBLIC FROM PUBLIC");
				st.executeUpdate("GRANT USAGE ON SCHEMA PUBLIC TO PUBLIC");
				st.executeUpdate("GRANT SELECT ON ALL TABLES IN SCHEMA PUBLIC TO PUBLIC");
				st.executeUpdate("GRANT USAGE ON ALL SEQUENCES IN SCHEMA PUBLIC TO PUBLIC");

				serverLoadWeights(db);

				// Tell server to do asynchronous commits. This speeds up large
				// ingests with a (slight) danger of
				// losing the most recent commits if the server crashes (NOTE:
				// database integrity should still be recoverable)
				if (asynchronous) {
					st.executeUpdate("SET SESSION synchronous_commit TO OFF");
				}
				else {
					st.executeUpdate("SET SESSION synchronous_commit to ON");
				}
			}
		}
		catch (final SQLException err) {
			throw new SQLException("Could not create database: " + err.getMessage());
		}
	}
@throws SQLException if there is an error creating/executing the query
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/client/PostgresFunctionDatabase.java