You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Breaking Changes in BETA5
1.0.0-BETA5 (以降、 BETA5) から、よりSQL標準と互換性の高いSQLコンパイラに置き換えました。
それに伴い、1.0.0-BETA4 (以降、BETA4) 以前と互換性のない機能が存在します。
BETA5 において利用可能なSQLの構文は Available SQL features in Tsurugi を参照してください。
Exact/Approximate Numeric リテラル
1.0
のような小数部を持つ数値リテラルは、BETA4 以前はDOUBLE PRECISION
型として扱われていましたが、BETA5 からはDECIMAL
型として扱われるようになりました。旧来の
DOUBLE PRECISION
型として扱いたい場合は、1.0e0
のように指数表記を用いてください。BETA4まで:
1
などの整数はBIGINT
として扱われる1.0
などの実数はDOUBLE PRECISION
として扱われるBETA5から:
1
や1.0
などの、指数表記を伴わないすべての数値リテラルは exact numeric リテラルとして取り扱うDECIMAL
型として取り扱われ、リテラルに記載した小数点以下の桁数をスケールとする型になるBIGINT
の値に収まる数値であればそれらはBIGINT
として扱う314e-2
) は approximate numeric リテラルとして取り扱うDOUBLE PRECISION
型として扱う上記について、詳しくは Available SQL features in Tsurugi の "Exact numeric literals" および "Approximate numeric literals" の項に説明があります。
文字列リテラル内のエスケープ
BETA4 以前で利用できた文字列リテラル内のエスケープシーケンス (e.g.
\n
) は、BETA5 からは利用できなくなりました。BETA5 では、文字列リテラルのクウォート文字である
'
のみをエスケープ可能で、それ以外の文字はエスケープできません。なお、BETA5 では文字列リテラル内で改行を行うことによって、改行文字を含めることはできます。
BETA4まで:
\
でエスケープを開始し、直後の文字を特殊文字として取り扱うn
,r
,t
-> それぞれLF
,CR
,HT
として扱う'
が来てもリテラルを継続する)BETA5から:
'
) を2回書くことで、クウォート文字1文字として取り扱う (e.g. 'I''m')なお、BETA5 における仕様は検討段階であり、今後エスケープシーケンスを利用できるようにする可能性はあります。
その際には、
c'I\'m'
のような、従来とは異なる文字列リテラルを導入し、かつ従来のものと共存できるようにする予定です。上記について、詳しくは Available SQL features in Tsurugi の "Character string literals" の項に説明があります。
予約語の追加
テーブル名やカラム名として利用できない予約語を、BETA5から追加しました。
BETA5 からは SQL標準に倣ったため、最小限のみを予約語としていた BETA4 に比べて種類が大幅に増大しています。
以下は BETA5 から新たに追加された予約語の一覧です:
A
ABS
,ABSOLUTE
,ACTION
,ADD
,ADMIN
,AFTER
,ALIAS
,ALTER
,ALWAYS
,ANY
,ARE
,ARRAY
,ASSERTION
,ASYMMETRIC
,AT
,AUTHORIZATION
,AVG
B
BEFORE
,BEGIN
,BETWEEN
,BIT
,BIT_AND
,BIT_LENGTH
,BIT_OR
,BITVAR
,BLOB
,BOOL_AND
,BOOL_OR
,BOOLEAN
,BOTH
C
CALL
,CARDINALITY
,CASCADE
,CASCADED
,CASE
,CHAR_LENGTH
,CHARACTER
,CHARACTER_LENGTH
,CHECK
,CLASS
,CLOB
,CLOSE
,COALESCE
,COLLATE
,COLUMN
,COMMIT
,CONNECT
,CONSTRAINT
,CONSTRAINTS
,CONVERT
,CORRESPONDING
,COUNT
,CUBE
,CURRENT
,CURRENT_DATE
,CURRENT_PATH
,CURRENT_ROLE
,CURRENT_TIME
,CURRENT_TIMESTAMP
,CURRENT_USER
,CURSOR
,CYCLE
D
DAY
,DEALLOCATE
,DEC
,DECLARE
,DEREF
,DESCRIBE
,DETERMINISTIC
,DISCONNECT
,DYNAMIC
E
EACH
,ELSE
,END
,END-EXEC
,ESCAPE
,EVERY
,EXCEPT
,EXEC
,EXECUTE
,EXTERNAL
,EXTRACT
F
FETCH
,FOR
,FOREIGN
,FUNCTION
G
GENERATED
,GET
,GLOBAL
,GRANT
,GROUPING
H
HOUR
I
IDENTITY
,IN
,INCLUDE
,INCREMENT
,INDICATOR
,INOUT
,INTEGER
,INTERSECT
,INTERVAL
L
LANGUAGE
,LARGE
,LATERAL
,LEADING
,LENGTH
,LIMIT
,LOCAL
,LOCALTIME
,LOCALTIMESTAMP
,LOWER
M
MATCH
,MAX
,MAXVALUE
,MIN
,MINUTE
,MINVALUE
,MOD
,MODIFIES
,MODULE
,MONTH
N
NATIONAL
,NCHAR
,NCLOB
,NEW
,NEXT
,NO
,NONE
,NULLIF
,NULLS
,NUMERIC
O
OCTET_LENGTH
,OF
,OLD
,ONLY
,OPEN
,OUT
,OVERLAPS
,OVERLAY
,OWNED
P
PARAMETER
,PLACING
,POSITION
,PREPARE
,PROCEDURE
R
RECURSIVE
,REF
,REFERENCES
,REFERENCING
,RESULT
,RETURN
,RETURNS
,REVOKE
,ROLE
,ROLLBACK
,ROLLUP
,ROW
,ROWS
S
SAVEPOINT
,SCOPE
,SEARCH
,SECOND
,SESSION_USER
,SIMILAR
,SMALLINT
,SOME
,SPECIFIC
,SQL
,SQLEXCEPTION
,SQLSTATE
,SQLWARNING
,START
,STATIC
,SUBLIST
,SUBSTRING
,SUM
,SYMMETRIC
,SYSTEM_USER
T
TEMPORARY
,THEN
,TIMEZONE_HOUR
,TIMEZONE_MINUTE
,TINYINT
,TO
,TRAILING
,TRANSLATE
,TRANSLATION
,TREAT
,TRIGGER
,TRIM
,UNKNOWN
U
UNNEST
,UPPER
,USER
,USING
V
VARBIT
,VARYING
,VIEW
W
WHEN
,WHENEVER
,WITHOUT
Y
YEAR
逆に、以下は BETA5 から予約語から除外した一覧です:
ASC
DESC
KEY
STRING
BETA5 における予約語の一覧は Available SQL features in Tsurugi の "Reserved words in Tsurugi" の項を参照してください。
なお、予約語の追加により、BETA4 以前で利用できていたテーブル名やカラム名が名前として利用できなくなる可能性があります。
そのような場合には、BETA5で導入した
"..."
形式の識別子を利用することで、予約語として扱われる名前を利用することができます。上記について、詳しくは Available SQL features in Tsurugi の "Delimited identifiers" の項に説明があります。
ホストパラメータの表記
ホストパラメータはSQL内に
:name
のような表記でパラメータを定義し、のちの実行時にパラメータを指定した値に置き換える機能です (e.g.INSERT INTO t VALUES(:key, :value)
)。値の指定は Tsubakuro や Iceaxe 等のクライアントプログラムから行います。BETA4 以前ではホストパラメータを表す際に、先頭のコロン (
:
) を省略しても当該パラメータを参照可能でした。BETA5 からはそのような仕様を廃止し、ホストパラメータを表す際には常に先頭にコロンが必須となります。
これは、カラム等の他のシンボルと混同し、誤ってホストパラーメータを参照しないようにするための措置です。
Beta Was this translation helpful? Give feedback.
All reactions