Contents
(1)Windows 版 PostgreSQL 9.2(昨日) - 実行環境、コンパイル済みファイルのダウンロード、配置
- PostgreSQL
起動、データベースへインストール - 簡単なテスト(使えるオブジェクト、データベースアクセス)
(3)Windows 版 PostgreSQL 9.4(明日) (4)CentOS 6.6 + PostgreSQL 9.3( 9 月24 日)(5)CentOS 7 + PostgreSQL 9.5 Alpha 1( 9 月25 日)(6)Scientific Linux 7 + PostgreSQL 9.5 Alpha 2( 9 月26 日)(7・終)Mac OS X 10.8.5 + PostgreSQL 9.5 Alpha 1( 9 月27 日)
実行環境、コンパイル済みファイルのダウンロード、配置
- Windows
7 32bit + PostgreSQL 9.3.5 - ConEmu Build 150513
で psqlを使用
今日の
PL/v8
ZIP
PostGIS
PostgreSQL 起動、データベースへインストール
ファイルコピーができたらCREATE DATABASE plv8_test TEMPLATE = template0 LC_COLLATE = 'C' LC_CTYPE = 'C';
# \c plv8_test psql (9.4.1, サーバー 9.3.5) データベース "plv8_test" にユーザ"postgres"として接続しました。
CREATE EXTENSION plv8; SELECT extname, extversion FROM pg_extension; extname | extversion ---------+------------ plpgsql | 1.0 plv8 | 1.4.0
簡単なテスト(使えるオブジェクト、データベースアクセス)
昨日と同じ無名コードブロックの簡単なクエリは問題なく実行できました(画像は省略)。別のテストとして、使えるDO LANGUAGE plv8 $$ var ary = ['Array', 'Boolean', 'Date', 'Function', 'Math', 'Number', 'Object', 'RegExp', 'String', 'window', 'location', 'navigator']; for (var i in ary) { var j = ary[i]; plv8.elog(INFO, j, eval('typeof ' + j)); } $$;
次に、PostgreSQL
↓ 無名コードブロック内で
DO LANGUAGE plv8 $$ var sql = 'SELECT * FROM pg_tables LIMIT 10', res = plv8.execute(sql); for (var k in res) { plv8.elog(INFO, k, res[k]); } $$; INFO: 0 [object Object] INFO: 1 [object Object] INFO: 2 [object Object] INFO: 3 [object Object] INFO: 4 [object Object] INFO: 5 [object Object] INFO: 6 [object Object] INFO: 7 [object Object] INFO: 8 [object Object] INFO: 9 [object Object]
↓ 同じく無名コードブロック内でクエリ結果を表示する例。各行の連想配列が「列名
DO LANGUAGE plv8 $$ var sql = 'SELECT * FROM pg_tables LIMIT 10', res = plv8.execute(sql), len = res.length, col = []; for (var i = 0; i < len; i++) { var obj = res[i], val = []; if (i === 0) { col = Object.keys(obj); plv8.elog(INFO, col.join(', ')); plv8.elog(INFO, '------------'); } col.forEach (function (key) { val.push(obj[key]); }); plv8.elog(INFO, val.join(', ')); } $$; INFO: schemaname, tablename, tableowner, tablespace, hasindexes, hasrules, hastriggers INFO: ------------ INFO: pg_catalog, pg_statistic, postgres, , true, false, false INFO: pg_catalog, pg_type, postgres, , true, false, false INFO: pg_catalog, pg_authid, postgres, pg_global, true, false, false INFO: information_schema, sql_features, postgres, , false, false, false INFO: pg_catalog, pg_attribute, postgres, , true, false, false INFO: pg_catalog, pg_class, postgres, , true, false, false INFO: information_schema, sql_implementation_info, postgres, , false, false, false INFO: pg_catalog, pg_constraint, postgres, , true, false, false INFO: pg_catalog, pg_inherits, postgres, , true, false, false INFO: pg_catalog, pg_index, postgres, , true, false, false
PL/v8
DO LANGUAGE plv8 $$ var res = plv8.execute(' SELECT * FROM pg_tables LIMIT 10 '); for (var k in res) { plv8.elog(INFO, k, res[k]); } $$; ERROR: SyntaxError: Unexpected token ILLEGAL DETAIL: undefined() LINE 2: var res = plv8.execute('
昨日の予想どおり、特に問題なく終わりました。明日は引き続き