PostgresのSQLダイアレクトには多くの式が存在せず、ファイルシステムパスを引数として必要とします。 すぐにカップルに名前を付けることができます:
- テーブルスペースの作成...
- CREATE FUNCTION ...(C言語で関数を動的にロードする場合)
したがって、質問の要点は、これらの引数が文字列定数で表されることです。 そして、これは、言い換えると、語彙検証の欠如を意味し、異なるオペレーティングシステムで異なる効果をもたらします。 ツリーに思考を広めないために:
Windowsユーザー! システムパスを示すパラメータで、通常のスラッシュ(実際にはバックスラッシュ)をこれらのスラッシュ「/」に置き換えてください! |
いいえ:CREATE TABLESPACE dbspace
LOCATION 'C:\Program Files\PostgreSQL\8.3\data\dbs' ;
CREATE TABLESPACE dbspace
LOCATION E'C:\Program Files\PostgreSQL\8.3\data\dbs' ;
* This source code was highlighted with Source Code Highlighter .
はい:CREATE TABLESPACE dbspace
LOCATION 'C:/Program Files/PostgreSQL/8.3/data/dbs' ;
CREATE TABLESPACE dbspace
LOCATION 'C:\\Program Files\\PostgreSQL\\8.3\\data\\dbs' ;
-- !
CREATE TABLESPACE dbspace
LOCATION E'C:\\Program Files\\PostgreSQL\\8.3\\data\\dbs' ;
* This source code was highlighted with Source Code Highlighter .
PS:私は絶対パスが好きではないので、「
CREATE FUNCTIONに dynamic_library_pathマジックがあるのはなぜですか
。CREATETABLESPACEには似たようなもの
はありません(怪しげな実行時パラメーターも)?」