You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Pritesh Maker (JIRA)" <ji...@apache.org> on 2017/08/25 17:31:02 UTC

[jira] [Updated] (DRILL-5427) SQL Execution Syntax incorrect for Sybase RDBMS

     [ https://issues.apache.org/jira/browse/DRILL-5427?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Pritesh Maker updated DRILL-5427:
---------------------------------
    Fix Version/s:     (was: 1.10.0)

> SQL Execution Syntax incorrect for Sybase RDBMS
> -----------------------------------------------
>
>                 Key: DRILL-5427
>                 URL: https://issues.apache.org/jira/browse/DRILL-5427
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Client - JDBC, SQL Parser, Storage - JDBC
>    Affects Versions: 1.10.0
>         Environment: Windows Linux
>            Reporter: David Lee
>             Fix For: Future
>
>
> The Sybase table syntax should be "database"."owner"."tablename", but "owner" is not being added which produces incorrect SQL when executed.
> The default owner is "DBO" for most tables. If DBO is omitted then the syntax should be just "database".."tablename" 
> When SYBASE sees  "database".."tablename" it:
> A. Checks if there is a tablename owned by the logged in user.
> B. If there is no tablename owned by the logged in user it uses DBO by default
> This is what I'm seeing using a JDBC plug-in connection to Sybase ASE:
> The following statements work fine:
> A. show schemas
> SCHEMA_NAME
> cp.default
> dfs.default
> dfs.root
> dfs.tmp
> INFORMATION_SCHEMA
> SYB1U
> SYB1U.tempdb
> B. use SYB1U.tempdb
> ok	summary
> true	Default schema changed to [SYB1U.tempdb]
> C. show tables
> TABLE_SCHEMA	TABLE_NAME
> SYB1U.tempdb	sysalternates
> SYB1U.tempdb	sysattributes
> SYB1U.tempdb	syscolumns
> SYB1U.tempdb	syscomments
> SYB1U.tempdb	sysconstraints
> etc.. etc.. etc..
> D. SELECT * FROM INFORMATION_SCHEMA.`COLUMNS`
> where TABLE_SCHEMA = 'SYB1U.tempdb'
> and TABLE_NAME = 'syscolumns'
> TABLE_CATALOG	TABLE_SCHEMA	TABLE_NAME	COLUMN_NAME	ORDINAL_POSITION	COLUMN_DEFAULT	IS_NULLABLE	DATA_TYPE
> DRILL	SYB1U.tempdb	syscolumns	id	1	(null)	NO	INTEGER
> DRILL	SYB1U.tempdb	syscolumns	number	2	(null)	NO	SMALLINT
> DRILL	SYB1U.tempdb	syscolumns	colid	3	(null)	NO	SMALLINT
> DRILL	SYB1U.tempdb	syscolumns	status	4	(null)	NO	TINYINT
> DRILL	SYB1U.tempdb	syscolumns	type	5	(null)	NO	TINYINT
> DRILL	SYB1U.tempdb	syscolumns	length	6	(null)	NO	INTEGER
> DRILL	SYB1U.tempdb	syscolumns	offset	7	(null)	NO	SMALLINT
> DRILL	SYB1U.tempdb	syscolumns	usertype	8	(null)	NO	SMALLINT
> DRILL	SYB1U.tempdb	syscolumns	cdefault	9	(null)	NO	INTEGER
> DRILL	SYB1U.tempdb	syscolumns	domain	10	(null)	NO	INTEGER
> etc.. etc.. etc..
> However, the following statements fail:
> A. select * from SYB1U.tempdb.syscolumns
> DATA_READ ERROR: The JDBC storage plugin failed while trying setup the SQL query. 
> sql SELECT *
> FROM "tempdb"."syscolumns"
> plugin SYB1U
> Fragment 0:0
> B. select * from SYB1U.tempdb.dbo.syscolumns
> VALIDATION ERROR: From line 1, column 15 to line 1, column 19: Table 'SYB1U.tempdb.dbo.syscolumns' not found
> C. select * from SYB1U.tempdb..syscolumns
> PARSE ERROR: Encountered ".." at line 1, column 27.
> In A, the execution engine doesn't include the "owner" portion.
> In B, adding dbo fails validation
> In C, the default behavior in Sybase for ".." isn't recognized
> I'm not sure if this is a Drill issue or a Calcite issue.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)